본문
Decorator Pattern
프로그래밍/디자인패턴 2015. 8. 31. 23:19
반응형
메서드 호출의 반환값에 변화를 주기 위해 중간에 장식자를 두는 패턴
장식자라는 이름에서 느껴지듯 실제 서비스의 반환값을 예쁘게 포장(장식)하는 패턴이 데코레이션 패턴이다.
💡 프록시 패턴과 데코레이터 패턴 비교
→ 프록시 패턴: https://server-engineer.tistory.com/229?category=625272
프록시 패턴 |
제어의 흐름을 변경하거나 별도의 로직 처리를 목적으로 한다. |
데코레이터 패턴 |
클라이언트가 받는 반환값에 장식을 더한다. |
💡 InterfaceService.java
public interface InterfaceService {
public abstract String runSomething();
}
💡 Service.java
public class Service implements InterfaceService {
public String runSomething() {
return "TEST PAGE";
}
}
💡 Decorator.java
public class Decorator implements InterfaceService {
InterfaceService service;
@Override
public String runSomething() {
System.out.println("호출에 대한 장식 주목적, 클라이언트에게 반환 결과에 장식을 더하여 전달");
service = new Service();
// 장식을 더한다는 것 빼고는 프록시 패턴과 유사하다.
return "정말 " + service.runSomething();
}
}
💡 ClientWithDecolator.java
public class ClientWithDecolator {
public static void main(String[] args) {
InterfaceService decorator = new Decorator();
System.out.println(decorator.runSomething());
}
}
💡 결과
호출에 대한 장식 주목적, 클라이언트에게 반환 결과에 장식을 더하여 전달
정말 TEST PAGE
반응형
댓글