디자인패턴
-
DI(Dependency Injection)란?Design Pattern/생성 디자인 패턴 2024. 4. 11. 12:53
종속성 주입(Dependency Injection, DI)은 소프트웨어 설계 패턴 중 하나로, 코드를 더 유연하고 테스트하기 쉽게 만들어줍니다. 이 패턴은 개발자가 프로젝트에 필요한 서비스나 모듈을 직접 생성하고 관리하지 않아도 되게 해 줍니다. 대신, 이러한 서비스나 모듈은 필요할 때 외부에서 '주입'되어 사용됩니다. 이렇게 함으로써, 코드 간의 결합도가 낮아지고, 유닛 테스트와 코드 재사용성이 향상됩니다. 예를 들어, 어떤 애플리케이션에서 데이터베이스 접근 로직이 필요하다고 해봅시다. 종속성 주입을 사용하지 않는 경우, 해당 로직을 필요로 하는 각 클래스 내에서 데이터베이스 연결을 직접 생성하고 관리해야 합니다. 하지만 DI를 사용하면, 데이터베이스 접근 로직을 구현한 클래스(서비스)를 애플리케이션의..
-
프로토타입 패턴(Prototype Pattern)이란?Design Pattern/생성 디자인 패턴 2024. 4. 2. 22:35
1. 프로토타입 패턴이란? 프로토타입 패턴은 생성 디자인 패턴의 한 종류로, 기존 객체를 복제하여 새 객체를 생성하는 방식입니다. 이 패턴은 특히 객체 생성 비용이 크거나 복잡한 경우, 또는 클라이언트가 객체의 타입을 미리 알 수 없는 경우에 유용합니다. 프로토타입 패턴은 원본 객체의 정확한 복사본을 제공함으로써, 새 객체의 생성과 초기화 과정을 단순화합니다. 2. 프로토타입 패턴은 주로 어디에 쓰이나? 프로토타입 패턴은 다음과 같은 상황에서 주로 사용됩니다: 객체 생성 비용이 높고, 비슷한 객체가 여러 개 필요한 경우 객체의 타입이 런타임에 결정되는 경우 클론을 지원하여 객체의 상태를 쉽게 복제할 수 있는 경우 이 패턴은 게임 개발에서 캐릭터, 아이템 등의 인스턴스를 만들 때나, 소프트웨어 개발에서 설..
-
빌더 패턴(Builder Pattern)이란?Design Pattern/생성 디자인 패턴 2024. 4. 1. 23:15
1. 빌더 패턴이란? 빌더 패턴은 복잡한 객체의 생성 과정과 그 표현 방법을 분리함으로써 동일한 생성 과정에서 서로 다른 표현 결과를 만들 수 있게 하는 디자인 패턴입니다. 이는 객체가 가질 수 있는 여러 옵션들을 명확하게 설정할 수 있게 하며, 최종 객체가 생성될 때까지 변경 불가능(immutable) 상태를 유지할 수 있도록 도와줍니다. 2. 빌더 패턴과 팩토리 패턴의 차이점 빌더 패턴과 팩토리 패턴은 모두 객체 생성을 추상화하는 패턴이지만, 주 사용 시나리오가 다릅니다. 팩토리 패턴은 생성할 객체의 타입이 서브클래스에 의해 결정되는 경우에 사용되며, 주로 객체 생성 로직을 캡슐화할 때 사용됩니다. 반면, 빌더 패턴은 하나의 복잡한 객체를 단계별로 생성해야 할 때 사용되며, 최종적으로 조립하는 방식으..
-
팩토리 패턴(Factory Pattern)이란?Design Pattern/생성 디자인 패턴 2024. 3. 31. 18:16
1. 팩토리 패턴이란? 팩토리 패턴(Factory Pattern)은 객체 생성을 위한 인터페이스를 제공하며, 서브클래스가 인스턴스화할 클래스를 결정하게 합니다. 이를 통해 객체 생성을 캡슐화하고, 클라이언트 코드가 특정 클래스에 의존하지 않도록 도와줍니다. 이 패턴은 객체 생성 로직과 클라이언트 코드를 분리하여, 코드의 유연성과 확장성을 향상시킵니다. 2. 팩토리 패턴의 종류 팩토리 패턴에는 주로 세 가지 종류가 있습니다: a. 단순 팩터리 패턴 (Simple Factory Pattern) 단순 팩터리 패턴은 팩토리 클래스가 객체 생성의 전체 로직을 처리합니다. 클라이언트는 팩토리 클래스를 통해 필요한 객체를 요청합니다. Java 예시: public class ShapeFactory { public Sh..
-
싱글턴 패턴(Singleton Pattern)이란?Design Pattern/생성 디자인 패턴 2024. 3. 30. 22:15
I. 싱글턴 패턴이란? 싱글턴 패턴(Singleton Pattern)은 객체의 인스턴스가 오직 하나만 생성되도록 보장하는 디자인 패턴입니다. 이 패턴은 전역 상태를 관리하거나, 공통된 리소스에 대한 일관된 접근 지점을 제공하는 등의 필요성 때문에 소프트웨어 개발에서 중요한 역할을 합니다. 예를 들어, 데이터베이스 연결이나 로깅 시스템과 같은 공유 리소스 관리에 있어서 중복 생성을 방지하고, 전역적으로 접근 가능한 단일 인스턴스가 필요할 때 유용하게 사용됩니다. 싱글턴 패턴을 올바르게 구현하기 위해서는 몇 가지 중요한 조건을 충족시켜야 합니다: Private 생성자: 싱글턴의 생성자는 private 접근 제한자를 사용하여 외부에서 new 키워드를 통한 인스턴스 생성을 방지합니다. - Private 생성자를..