의미 특정 클래스의 객체들이 할 수 있는 일들을 여러가지 두고, 각 객체마다 사용자가 원하는대로 골라 시키거나 기능들을 필요에 따라 장착하게 할 때 사용 (참고: https://www.youtube.com/watch?v=q3_WXP9pPUQ) 문제 상황 알림 관련 라이브러리를 생각해보자. 처음에는 알림 클래스가 간단하게 구성되어 있을 것이다. 해당 알림 클래스는 중요한 이벤트가 발생할 때마다 사용자에게 알림을 보내는 역할을 한다. 하지만 나중에 facebook이나 slack 같은 어플리케이션에 알림을 보내려고 하면, 추
의미 복잡한 객체를 단계별로 만들 수 있게 해주는 디자인 패턴 문제 상황 집이라는 객체를 생성하고 싶을 때 사용하는 방법에는 2가지가 있다. 상속을 마구마구 시키기 단점 자식 클래스들이 감당할 수 없을만큼 많아질 수 있다. 생성자에 가능한 옵션들을 다 추가시키기 단점 인자 값이 추가되면 수정하기 어렵다. 가독성이 떨어진다. 참고) https://refactoring.guru/smells/long-parameter-list ![](https://images.velog