데코레이터는 메서드 호출의 반환값에 변화를 주기 위한 장식자
Proxy Pattern 은 OCP ( Open Closed Principle ) 와 DIP ( Dependency Inversion Principle ) 을 적용
Ex)
Decorator Pattern 을 적용한 상태
public class Service implements IService{
@Override
public String runSomething() {
return "Service method";
}
}
public interface IService {
public abstract String runSomething();
}
public class Decorator implements IService{
IService service;
@Override
public String runSomething() {
System.out.println("호출에 대한 장식 주목적 , 클라이언트에게 반환 결과에 장식을 더하여 전달");
service = new Service();
return service.runSomething()+" with Decorator";
}
}
Main
public class ClientWithDecorator {
public static void main(String [] args) {
IService decorator = new Decorator();
System.out.println(decorator.runSomething());
}
}
public class Decorator implements IService{
IService service;
@Override
public String runSomething() {
System.out.println("호출에 대한 장식 주목적 , 클라이언트에게 반환 결과에 장식을 더하여 전달");
service = new Service();
String str = "method 호출 전 로직 ";
str += service.runSomething();
str += " method 호출 후 로직";
return str;
}
}