본문 바로가기
반응형

Design2

[Design Pattern] 장식자 패턴, 데코레이터 패턴(Decorator Pattern) OCP(Open-Closed Principle) Class는 확장에는 열려 있어야 하지만 변경에는 닫혀 있어야 한다. 코드에서 확장해야 할 부분을 선택할 때는 세심한 주의를 기울여야 한다. 무조건 OCP를 적용한다면 괜히 쓸데없는 일을 하며 시간을 낭비할 수 있으며, 필요 이상으로 복잡하고 이해하기 힘든 코드를 만들게 되는 부작용이 발생할 수도 있다. 데코레이터 패턴(Decorator Pattern)으로 객체에 추가 요소를 동적으로 더할 수 있다. 데코레이터를 사용하면 서브클래스를 만들 때보다 훨씬 유연하게 기능을 확장할 수 있다. 데코레이터의 슈퍼클래스는 자신이 장식하고 있는 객체의 슈퍼클래스와 같다. 한 객체를 여러 개의 데코레이터로 감쌀 수 있다. 데코레이터는 자신이 감싸고 있는 객체와 같은 슈퍼클.. 2022. 5. 16.
[Design Pattern] 옵저버 패턴, 감시자 패턴 (Observer Pattern) 옵저버 패턴은 일련의 객체 사이에서 일대다 관계를 정의한다. 한 객체의 상태가 변경되면 그 객체에 의존하는 모든 객체에 연락이 간다. 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one to many)의존성을 정의한다. 느슨한 결합(Loose Coupling)은 객체들이 상호작용할 수는 있지만 ,서로를 잘 모르는 관계를 의미한다. 느슨한 결합을 활용하면 유연성이 좋아지고 옵저버 패턴은 느슨한 결합을 보여주는 예이다. 주제(subject)는 옵저버(observer)가 특정 인터페이스를 구현한다는 사실만 안다. 옵저버(observer)는 언제든지 새로 추가할 수 있다. 새로운 형식의 옵저버(observer)를 추가할 때도 주제(subject.. 2022. 5. 16.
반응형