헤드퍼스트 디자인 패턴 썸네일형 리스트형 데코레이터 패턴 OCP(Open-Closed Principle) 클래스는 확장에는 열려 있어야 하지만 변경에는 닫혀 있어야 한다. 무조건 OCP를 적용한다면 괜히 쓸데없는 일을 하며 시간을 낭비할 수 있으며, 필요 이상으로 복잡하고 이해하기 힘든 코드를 만들게 되는 부작용이 발생할 수 있다. 데코레이터 패턴: 객체에 추가 요소를 동적으로 더할 수 있다. 데코레이터를 사용하면 서브클래스를 만들 때보다 훨씬 유연하게 기능을 확장할 수 있다. 커피 가게를 만들어 보자. 커피 가게에 특징은 들어가는 재료에 따라 커피가 달라진다는 것이다. 일단 Beverage라는 커피들을 추상화하는 인터페이스를 하나를 만들어 보자. 인터페이스는 비용, 안에 들어가는 재료를 알려주는 메서드로 구성되어 있다. Beverage를 직접적으로 구현하는.. 더보기 이전 1 다음