Design-Pattern
-
Prototype PatternDesign-Pattern/Creational Pattern 2023. 9. 28. 22:32
개요 프로토타입 패턴은 객체 생성을 최적화하고 새로운 객체를 기존 객체의 복사를 통해 생성하는 디자인 패턴이다. 문제점 객체가 있고 그 객체를 외부에서부터 복사하는 것은 객체의 필드 중 일부가 비공개일 경우 항상 가능하지 않다. 또한 객체의 복제본을 생성하려면 객체의 클래스를 알아야 하므로, 코드가 해당 클래스에 의존하게 되고, 메서드의 매개 변수가 일부 인터페이스를 따르는 모든 객체를 수락한다면 우리는 그 객체가 따르는 인터페이스만 알고, 그 객체의 구상 클래스는 알지 못 한다. 해결책 프로토타입 패턴은 실제로 복제되는 객체에 복제 프로세스를 위임한다. 패턴은 복제를 지원하는 모든 객체에 대한 공통 인터페이스를 선언하고 이 인터페이스를 사용하면 코드를 객체의 클래스에 결합하지않고도 해당 객체를 복제할 ..
-
Factory MethodDesign-Pattern/Creational Pattern 2023. 9. 28. 22:32
개요 팩토리 메서드는 부모 클래스에서 객체들을 생성할 수 있는 인터페이스를 제공하지만, 자식 클래스들이 생성될 객체들의 유형을 변경할 수 있도록 하는 생성 패턴이다. 이는 클라이언트테서 직접 new 연산자를 통해 제품 객체를 생성하는 것이 아닌, 제품 객체들을 생성하는 공장 클래스를 만들고, 이를 상속하는 서브 공장 클래스의 메서드에서 여러가지 제품 객체 생성을 각각 책임 지는 것으로 객체 생성에 필요한 과정을 템플릿 처럼 미리 구성해놓고, 객체 생성에 관한 전처리나 후처리를 통해 생성 과정을 다양하게 처리하여 객체를 유연하게 정할 수 있는 특징이 있다. 적용 시기 팩토리 메서드는 함께 동작해야 하는 객체들의 정확한 유형과 의존 관계를 모르는 경우 팩토리 메서드는 객체 생성 코드와 실제로 사용하는 코드를..
-
BuilderDesign-Pattern/Creational Pattern 2023. 9. 28. 22:09
개요 빌더는 복잡한 객체를 단계별로 생성할 수 있도록 하는 생성 디자인 패턴으로 이 패턴을 사용하면 같은 제작 코드를 사용하여 객체의 다양한 유형과 표현을 제작할 수 있다. 문제점 먼저 빌더 패턴 이전에 사용된 생성자 패턴을 살펴보자 점층적 생성자 패턴 점층적 생성자 패턴(Telescoping Constructor Pattern)은 필수 매개변수와 함께 선택 매개변수를 0개, 1개, 2개 … 받는 형태로, 우리가 다양한 매개변수를 입력받아 인스턴스를 생성하고 싶을 때 사용하던 생정자를 오버로딩 하는 방식이다. class Hamburger { // 필수 매개변수 private int bun; private int patty; // 선택 매개변수 private int cheese; private int le..
-
Abstract FactoryDesign-Pattern/Creational Pattern 2023. 9. 28. 22:08
디자인 패턴들 refactoring.guru 개요 추상 팩토리 패턴은 연관성이 있는 객체 군이 여러 개 있을 경우 이들을 묶어 추상화하고, 어떤 구체적인 상황이 주어지면 팩토리 객체에서 집합으로 묶은 객체 군을 구현화 하는 생성 패턴이다. 클라이언트에서 특정 객체를 사용할 때 패토리 클래스만을 참조하여 특정 객체에 대한 구현부를 감추어 역할과 구현을 분리시킬 수 있다. 즉, 추상 팩토리의 핵심 제품군 집합을 타입 별로 찍어낼 수 있다는 점이 포인트이다. 예를들어 모니터, 마우스, 키보드를 묶은 전자 제품군을 삼성 제품인지, 애플 제품인지에 따라 집합이 브랜드 명으로 여러 갈래로 나뉘게 될 때, 복잡하게 묶이는 이러한 제품들을 관리와 확장에 용이하게 패턴화 한것이 추상 팩토리이다. 문제점 가구 판매장을 ..