디자인 패턴
은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이
인정한 가장 효율적인 예시를 정리한 패턴의 집합이다.
장식하다
라는 의미의 데코레이터 패턴은 프록시 패턴과 유사한 형태를 가지고 있지만
반환값을 가진다는 부분에서 차이점을 보인다.
public interface IService {
public abstract String runSomething();
}
public class Service implements IService {
public String runSomething() {
return "서비스 짱!!!";
}
}
public class ClientWithNoDecolator {
public static void main(String[] args) {
Service service = new Service();
System.out.println(service.runSomething());
}
}
public interface IService {
public abstract String runSomething();
}
public class Service implements IService {
public String runSomething() {
return "서비스 짱!!!";
}
}
public class Decoreator implements IService {
IService service;
public String runSomething() {
System.out.println("호출에 대한 장식 주목적, 클라이언트에게 반환 결과에 장식을 더하여 전달");
service = new Service();
return "정말" + service.runSomething();
}
}
public class ClientWithDecolator {
public static void main(String[] args) {
IService decoreator = new Decoreator();
System.out.println(decoreator.runSomething());
}
}
메서드 호출의 반환값에 변회를 주기 위해 중간에 장식자를 두는 패턴
데코레이터 패턴
은 프록시 패턴
과 같은 특성을 지니고 있어 개방 폐쇄 원칙
과 의존 역전 원칙
을 적용한 패턴이다.