◈ Study/디자인패턴(GoF)🥞

    [GoF] Prototype 패턴 : 복사해서 인스턴스를 만든다 [인스턴스로부터 다른 인스턴스를 생성하는 패턴]

    - Prototype 패턴 : 복사해서 인스턴스를 만든다 Prototype 패턴은 복사기로 문서를 복사하는 것처럼, 클래스에서 인스턴스를 생성하는 것이 아니라 인스턴스로부터 다른 인스턴스를 생성하는 패턴이다. Java의 clone 메서드와 함께 학습해보려 한다. - 어떤 경우에 사용할까? 종류가 너무 많아 클래스로 정리할 수 없는 경우 클래스로부터 인스턴스 생성이 어려운 경우 [ ex) 마우스로 그린 도형을 나타내는 인스턴스 ] 프레임워크와 생성하는 인스턴스를 분리하고 싶은 경우 - 예제 코드 패키지 이름 설명 framework Product 추상 메서드 use와 createCopy가 선언되어 있는 인터페이스 framework Manager createCopy를 사용하여 인스턴스를 복제하는 클래스 이름 ..

    [GoF] Singleton 패턴 : 인스턴스를 단 하나만 만든다 [인스턴스가 하나만 존재하는 것을 보증하는 패턴]

    - Singleton 패턴 : 인스턴스를 단 하나만 만든다 Singleton 패턴은 인스턴스가 하나만 존재하는 것을 보증하는 패턴이다. - 어떤 경우에 사용할까? Singleton 패턴에서는 인스턴스 수를 제한하고 있다. 인스턴스가 여러 개면 인스턴스가 서로 영향을 미쳐 뜻밖의 버그를 만들어 낼 수 있으나, 인스턴스가 하나뿐이라는 보장이 있다면 인스턴스 간 영향이 최소화 될 수 있다. - 예제 코드 이름 설명 Singleton 인스턴스가 하나만 존재하는 클래스 Main 동작 테스트용 클래스 - Singleton 클래스 public class Singleton { private static Singleton singleton = new Singleton(); private Singleton() { Syst..

    [GoF] Factory Method 패턴 : 하위 클래스에서 인스턴스를 만든다 [인스턴스 생성을 위한 뼈대와 생성을 나누는 패턴]

    - Factory Method 패턴 : 하위 클래스에서 인스턴스를 만든다 Factory Method 패턴은 부모 클래스에서 객체들을 생성할 수 있는 인터페이스를 제공하지만, 자식 클래스들이 생성될 객체들의 유형을 변경할 수 있도록 하는 생성 패턴이다. 인스턴스 생성을 위한 뼈대와 실제 인스턴스를 생성하는 클래스를 나누어 생각할 수 있다. - 어떤 경우에 사용할까? factory는 '공장'이라는 의미로, 인스턴스를 생성하는 공장을 Template Method 패턴으로 구성한 것이 Factory Method 패턴이다. 이 패턴은 인스턴스 생성과 구현을 분리하는데 의의를 둔다. - 예제 코드 패키지 이름 설명 framework Product 추상 메서드 use만 정의한 추상 클래스 framework Facto..

    [GoF] Template Method 패턴 : 하위 클래스에서 구체적으로 처리한다 [상위 클래스에서 뼈대를, 하위 클래스에서 내용을 결정하는 패턴]

    - Template Method 패턴 : 하위 클래스에서 구체적으로 처리한다 Template Method 패턴은 템플릿 기능을 가진 패턴으로, 상위 클래스에서 처리의 뼈대를 결정하고 하위 클래스에서 그 구체적인 내용을 결정하는 패턴이다. 상위 클래스의 코드로는 어떻게 처리되는지 알 수 없다. - 어떤 경우에 사용할까? Template Method 패턴을 사용하면, 상위 클래스에 알고리즘이 기술되어 있으므로 하위 클래스 쪽에는 알고리즘을 일일이 기술할 필요가 없어지고, 오류가 발견되더라도 Template Method만 수정하면 된다. - 예제 코드 이름 설명 AbstractDisplay 메서드 display만 구현된 추상 클래스 CharDisplay, StringDisplay 메서드 open, print,..

    [GoF] Adapter 패턴 : 사이에 끼워 재사용한다(2) [상속을 사용한 패턴, 위임을 사용한 패턴]

    [GoF] Adapter 패턴 : 사이에 끼워 재사용한다(1) [제공된 것과 필요한 것 사이의 차이를 메워주는 패 - Adapter 패턴 : 사이에 끼워 재사용한다(1) Adapter 패턴은 제공된 것과 필요한 것 사이에 들어가서 그 차이를 메워주는, 호환되지 않는 인터페이스를 가진 객체들이 협업할 수 있도록 하는 구조적 yermi.tistory.com - Adapter 패턴 : 상속을 사용한 패턴, 위임을 사용한 패턴 - 전원의 비유와 예제 코드의 대응 관계 전원의 비유 예제 코드 제공된 것 교류 100볼트 Banner 클래스(showWithParen, showWithAster) 변환 장치 어댑터 PrintBanner 클래스 필요한 것 직류 12볼트 Print 인터페이스(printWeak, printS..