Decorator
![[GoF Design Patterns] Decorator](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FqiOg9%2FbtsKHqfuRAz%2FAAAAAAAAAAAAAAAAAAAAAD9uyvQ-BARpbV4f6Cqnv7-AvxLsM54k5w6W6ZvCfWyO%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DIWgMlXWGHyRGJU9S2ILgK4ohOdQ%253D)
[GoF Design Patterns] Decorator
오늘 알아볼 패턴은 Decorator입니다.Wrapper라고도 알려져있는데요. 이전에 알아본 Adapter 패턴도 Wrapper라고 불렸습니다.두 패턴 모두 Wrapper불리는 이유와 어떤 차이점 있는지도 알아보도록 합시다.1. 목적객체들을 특수 Wrapper 객체들 내에 넣어서 새로운 동작을 추가할 수 있도록 하는 패턴입니다.2. 문제 상황어떠한 프로그램에서 사용자에게 중요한 이벤트를 알려주는 알림 라이브러리를 개발하고 있다고 가정합시다.초기에는 몇 개의 프로퍼티와 하나의 생성자 그리고 send라는 메서드를 갖는 Notifier 클래스가 있었습니다.send 메서드는 클라이언트로부터 메세지를 인자로 받은 후 Notifier의 생성자를 통해 Notifier에게 전달된 이메일 목록으로 알림을 보냅니다.클라이..