하나의 객체에 추가적인 책임을 부여하는 추가, 서브클래스를 만드는 것을 통해 기능을 유연하게 확장한다고 함
https://velog.io/@hanna2100/디자인패턴-3.-데코레이터-패턴-개념과-예제-decorator-pattern
나중에 정리...
유연하게 기능을 추가하기엔 좋지만, 초기화 코드의 복잡성이 올라가고, 이해하기 힘들 수 있음