본문 바로가기

데코레이터 패턴2

2024-07-31 학습일기 스프링 프록시 패턴 프록시의 주요 기능은 접근 제어이다.캐시도 접근 제어의 한 종류라고 볼 수 있다.이미 한번 조회한걸 빠르게 조회하기 위함이미 개발된 로직을 전혀 수정하지 않고 프록시 객체를 통해 캐시를 적용하려면 어떻게 해야할까 Subject라는 인터페이스를 만들고 이걸 실제로 구현한 RealSubject라는 구현체를 만든다.이때 RealSubject에서 1초 걸린다고 가정하면세 번 호출시 각각 1초씩 걸리므로 3초가 걸린다.하지만, 만약 조회하는 내용이 같다면 이건 손해가 될 수 있다.따라서, 프록시를 통해 캐시 형태로 사용하면 더 빨리 조회할 수 있다.그렇기 위해 CacheProxy라는 것을 하나 만들고 필드로 RealSubject를 주입받는다.또한, Cache 값을 저장하기 위한 필드를 하나더 .. 2024. 7. 31.
[Design Pattern] 데코레이터 패턴 이번 포스팅 할 디자인 패턴은 데코레이터 패턴이다. 데코레이터는 말 그대로 장식하는 것이다. A, B, C 클래스가 있을 때 A -> B(A) -> C(B(A)) 이런식으로 장식해나갈 수 있는 패턴 또는 구조를 만드는 것을 데코레이터 패턴이라고 한다. 데코레이터 패턴을 사용하면 상속으로 복잡하고 중복된 코드를 만드는 것이 아니라 전략 패턴과 연계되어 좀 더 활용도 높은 구조를 만들 수 있다. 코드로 한 번 알아보자. 코드 구성 의존성 역전 원칙을 위한 Notifier 인터페이스 Notifier public interface Notifier { void send(); } BasicNotifier // 래퍼가 없는 데코레이터 // 이 클래스가 있어야 마무리 됨 public class BasicNotifier.. 2024. 4. 1.