본문 바로가기

CS/Design Pattern4

Director Builder Pattern (디렉터 빌더 패턴) 이 글에 주된 주제는 GoF의 디자인 패턴에서 정의하고 있는 디렉터 빌더 패턴입니다. 그러나 이펙티브 자바의 Simple Builder Pattern도 존재하기에 공부를 위해 일부를 다루고 있습니다. Director Builder Pattern (디렉터 빌더 패턴) 이란? 복잡한 객체들을 동일한 프로세스를 통해 단계별로 다양하게 생성할 수 있도록 하는 생성 디자인 패턴이다. Builder: 빌더 인터페이스는 제품 즉, 인스턴스를 생성할 때 필요한 단계들을 선언한다. ConcreateBuilderA: 빌더 인터페이스의 구현체다. 제품(Product) 생성에 필요한 단계들을 구현하며, 인터페이스를 따르지 않는 제품을 생산할 수도 있다. Product: ConcreateBuilder를 통해 생성된 제품이다. .. 2023. 9. 4.
Abstract Factory Pattern (추상 팩토리 패턴) Abstract Factory Pattern (추상 팩토리 패턴) 이란? 관련 있는 여러 인스턴스를 만들어주는 팩토리를 구체적인 클래스에 의존하지 않고 만들 수 있게 해주는 생성패턴이다. 즉, 구체적인 구현에는 의존하지 않고 인터페이스에 주목하여, 인터페이스만을 사용해서 부품을 조립하고 제품으로 완성하는 패턴이다. AbstractFactory: 추상적인 공장이다. 추상적인 공장에서는 추상적인 제품을 생산한다. ProductA, ProductB: 추상적인 제품이다. ConcreateFactory: 추상적인 공장의 구현체다. 즉, 구체적인 공장이다. 구체적인 제품을 생산한다. ConcreateProductA, ConcreateProductB: 추상적인 제품의 구현체이다. 즉, 구체적인 제품이다. Client.. 2023. 8. 24.
Factory Method Pattern (팩토리 메서드 패턴) 해당 글은 Java 8에 default 메서드가 추가된 이후 interface를 사용해 팩토리 메서드를 구현하는 것을 기준으로 작성된 글입니다. Factory Method Pattern(팩토리 메서드 패턴) 이란? 팩토리 패턴은 구체적인 인스턴스에 대한 구현을 서브 클래스가 정하는 패턴이다. 즉, 부모클래스에서 객체들을 생성할 수 있는 뼈대(interface)를 제공하고, 자식 클래스들이 생성될 객체의 유형을 결정할 수 있도록 하는 생성 패턴이다. Creator: 뼈대 즉, interface를 제공하는 최상위 팩토리 인터페이스다. 서브 클래스들에게 구현을 위임한다. templateMethod(): 객체 생성에 관한 전처리, 후처리를 템플릿화 한 메서드(공통 작업 처리) createProduct(): 서브.. 2023. 8. 9.
Singleton Pattern (싱글톤 패턴) Singleton Patter(싱글톤 패턴)이란? 싱글톤 패턴은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 장점 하나의 인스턴스를 기반으로 해당 인스턴스를 다른 모듈들이 공유하여 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어든다. 그렇기 때문에 인스턴스 생성에 많은 비용이 드는 I/O 바운드 작업에 많이 사용된다. ※ I/O 바운드: 디스크 연결, 네트워크 통신, 데이터베이스 연결 ex) 데이터베이스 연결 데이터베이스에 query문을 전달하기 위해서는 디비와 connect를 해야한다. 하지만 요청 시 매번 connect 인스턴스를 생성한다면 높은 비용이 발생한다. 이때 싱글톤 패턴을 사용한다면 connect 인스턴스를 단 한 번만 생성하여 다른 모듈과 공유하는 형태로 사용함으로써 .. 2023. 7. 31.