[GoF] Builder 패턴 : 복잡한 인스턴스를 조립한다 [구조를 가진 인스턴스를 만들어 가는 패턴]
·
◈ Study/디자인패턴(GoF)🥞
- Builder 패턴 : 복잡한 인스턴스를 조립한다 Builder 패턴은 구조를 가진 인스턴스를 만들어 가는 패턴으로, 뼈대를 만들고 아래에서 위로 만들어 간다. - 어떤 경우에 사용할까? Builder 패턴은 구체적인 하위 클래스를 모른다는 게 큰 장점이다. 모르기 때문에 교체가 가능하고, 교체되기 때문에 부품으로서의 가치가 높다. 클래스 설계자는 '교체 가능성'을 항상 염두에 둘 필요가 있다. - 예제 코드 이름 설명 Builder 문서를 구성하기 위한 메서드를 규정한 추상 클래스 Director 하나의 문서를 만드는 클래스 TextBuilder 텍스트(일반 문자열)를 이용하여 문서를 만드는 클래스 HTMLBuilder HTML 파일을 이용하여 문서를 만드는 클래스 Main 동작 테스트용 클래스 -..
[GoF] Prototype 패턴 : 복사해서 인스턴스를 만든다 [인스턴스로부터 다른 인스턴스를 생성하는 패턴]
·
◈ Study/디자인패턴(GoF)🥞
- Prototype 패턴 : 복사해서 인스턴스를 만든다 Prototype 패턴은 복사기로 문서를 복사하는 것처럼, 클래스에서 인스턴스를 생성하는 것이 아니라 인스턴스로부터 다른 인스턴스를 생성하는 패턴이다. Java의 clone 메서드와 함께 학습해보려 한다. - 어떤 경우에 사용할까? 종류가 너무 많아 클래스로 정리할 수 없는 경우 클래스로부터 인스턴스 생성이 어려운 경우 [ ex) 마우스로 그린 도형을 나타내는 인스턴스 ] 프레임워크와 생성하는 인스턴스를 분리하고 싶은 경우 - 예제 코드 패키지 이름 설명 framework Product 추상 메서드 use와 createCopy가 선언되어 있는 인터페이스 framework Manager createCopy를 사용하여 인스턴스를 복제하는 클래스 이름 ..
[GoF] Singleton 패턴 : 인스턴스를 단 하나만 만든다 [인스턴스가 하나만 존재하는 것을 보증하는 패턴]
·
◈ Study/디자인패턴(GoF)🥞
- Singleton 패턴 : 인스턴스를 단 하나만 만든다 Singleton 패턴은 인스턴스가 하나만 존재하는 것을 보증하는 패턴이다. - 어떤 경우에 사용할까? Singleton 패턴에서는 인스턴스 수를 제한하고 있다. 인스턴스가 여러 개면 인스턴스가 서로 영향을 미쳐 뜻밖의 버그를 만들어 낼 수 있으나, 인스턴스가 하나뿐이라는 보장이 있다면 인스턴스 간 영향이 최소화 될 수 있다. - 예제 코드 이름 설명 Singleton 인스턴스가 하나만 존재하는 클래스 Main 동작 테스트용 클래스 - Singleton 클래스 public class Singleton { private static Singleton singleton = new Singleton(); private Singleton() { Syst..
[GoF] Factory Method 패턴 : 하위 클래스에서 인스턴스를 만든다 [인스턴스 생성을 위한 뼈대와 생성을 나누는 패턴]
·
◈ Study/디자인패턴(GoF)🥞
- Factory Method 패턴 : 하위 클래스에서 인스턴스를 만든다 Factory Method 패턴은 부모 클래스에서 객체들을 생성할 수 있는 인터페이스를 제공하지만, 자식 클래스들이 생성될 객체들의 유형을 변경할 수 있도록 하는 생성 패턴이다. 인스턴스 생성을 위한 뼈대와 실제 인스턴스를 생성하는 클래스를 나누어 생각할 수 있다. - 어떤 경우에 사용할까? factory는 '공장'이라는 의미로, 인스턴스를 생성하는 공장을 Template Method 패턴으로 구성한 것이 Factory Method 패턴이다. 이 패턴은 인스턴스 생성과 구현을 분리하는데 의의를 둔다. - 예제 코드 패키지 이름 설명 framework Product 추상 메서드 use만 정의한 추상 클래스 framework Facto..
[GoF] Template Method 패턴 : 하위 클래스에서 구체적으로 처리한다 [상위 클래스에서 뼈대를, 하위 클래스에서 내용을 결정하는 패턴]
·
◈ Study/디자인패턴(GoF)🥞
- Template Method 패턴 : 하위 클래스에서 구체적으로 처리한다 Template Method 패턴은 템플릿 기능을 가진 패턴으로, 상위 클래스에서 처리의 뼈대를 결정하고 하위 클래스에서 그 구체적인 내용을 결정하는 패턴이다. 상위 클래스의 코드로는 어떻게 처리되는지 알 수 없다. - 어떤 경우에 사용할까? Template Method 패턴을 사용하면, 상위 클래스에 알고리즘이 기술되어 있으므로 하위 클래스 쪽에는 알고리즘을 일일이 기술할 필요가 없어지고, 오류가 발견되더라도 Template Method만 수정하면 된다. - 예제 코드 이름 설명 AbstractDisplay 메서드 display만 구현된 추상 클래스 CharDisplay, StringDisplay 메서드 open, print,..