본문 바로가기

Design Pattern5

Factory Method Pattern Factory Method Pattern 개념 Factory Method Pattern 생성 패턴 중에 객체를 생성하는 부분을 서브 클래스에 맡기는 패턴 구현 사례 Creator public abstract class ChickenFactory{ abstract Chicken createChicken(); } ConcreteCrator public class FriedChickenFactory extends ChickenFactory{ @Override Chicken createChicken(){ return new FriedChicken(); } } public class SeasonedChickenFactory extends ChickenFactory{ @Override Chicken createCh.. 2023. 5. 26.
Template Method Pattern Template Method Pattern 개념 Template Method Pattern 로직을 단계별로 구변할 때 사용하는 설계 패턴 특정 단계가 수정될 가능성이 있는 경우 효율적이다. 구현 방식 기본 조건 추상 클래스로 구현한다. 단계를 진행하는 메서드는 final을 통해 수정을 못하도록 제한한다. 각 단계는 외부에서 접근 못하게 하고 자식 클래스만 수정하도록 허용하기 위해 protected로 선언한다. 구현 사례 추상 클래스 abstract class Pasta{ protected void boil(){ System.out.println("Boil noodles"); } abstract void sauce(){} protected void fry(){ System.out.println("fry p.. 2023. 5. 25.
Singleton Pattern Singleton Pattern 개념 Singleton Pattern 인스턴스를 1개만 생성하고 리턴하는 방식 구현 방법 기본 구현 방식 public class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } 생성자를 private으로 두어 외부에서 new 키워드를 통해 생성할 수 없도록 한다. 객체를 필드 멤버로 두고 static 키워드를 둔다. getInstance() 메서드를 통해 instacne가 null일 경우에만 객.. 2023. 5. 24.
Adapter Pattern Adapter Pattern 개념 Adapter Pattern 어떤 클래스의 인터페이스를 다른 인터페이스로 변환하여 사용하는 설계 방식 Adapter를 이용하여 인터페이스 호환성 문제를 해결 특징 및 장점 호환되지 않는 인터페이스를 사용 가능하게 한다. 클라이언트와 인터페이스를 분리하여 인터페이스가 변경되어도 adapter에 캡슐화되어 클라이언트 수정이 필요 없다. 다이어그램 기존 시스템에서 Target 인터페이스를 사용하고 adaptee 인터페이스를 사용하고자 하는 상황 변환하고자 하는 대상 인터페이스는 adaptee 변환을 해서 이루고자 하는 형태의 인터페이스는 target Adapter 구현 방식 클래스 어댑터 다중 상속을 통해 Target과 Adaptee를 모두를 상속하여 구현 자바에서는 다중 상.. 2023. 5. 23.