Decorator Pattern :: 데코레이터 패턴

Minkuk Jo·2020년 1월 30일
0

DesignPattern

목록 보기
1/2
  • 데코레이터 패턴은 프록시 패턴과 구현 방식이 같다.
  • 다만, 프록시 패턴은 클라이언트가 최종적으로 돌려 받는 return 값을 조작하지 않고 그대로 전달하면 반면, 데코레이터 패턴은 클라이언트가 받은 return 값에 장식을 더한다.

프록시 패턴과 데코레이터 패턴 비교

프록시 패턴

  • 제어의 흐름을 변경하거나 별도의 로직 처리 목적
  • 클라이언트가 받는 return 값을 특별한 경우가 아니면 변경하지 않는다.

데코레이터 패턴

  • 클라이언트가 받는 return 값에 장식을 더한다.

Code Example

public interface BaseService {
  public abstract String runSomething();
}
public DefaultService implements BaseService {
  @Override
  public String runSomething() {
    return "서비스";
  }
}
public DecoratorService implements BaseService {
  BaseService defaultService;
  
  @Override
  public String runSomething() {
    defaultService = new DefaultService();
    return "Decorator" + defaultService.runSomething();
  }
}
public class ClientWithDecorator {
  public static void main(String[] args) {
    BaseService DecoratorService = new DecoratorService();
    System.out.println(decoratorService.runSomething());
  }
}
profile
앞으로 모든 건 github에 집중! https://github.com/J-minkuk

0개의 댓글