본문 바로가기
반응형

Design Pattern4

디자인 패턴 - 컴퍼지트 패턴 (Composite Pattern) 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴으로, 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 한다. 역할을 설명하면 Component : 구체적인 부분. 즉, Leaf 클래스와 전체에 해당하는 Composite 클래스에 공통 인터페이스를 정의 Leaf : 구체적인 부분 클래스. Composite 객체의 부품으로 설정 Composite : 전체 클래스. 복수 개의 Component를 갖도록 정의, 그러므로 복수 개의 Leaf, 심지어 복수 개의 Composite 객체를 부분으로 가질 수 있음 으로 정리 할 수 있습니다. 사실 저렇게만 읽으면 감이 잘 안오니 code로 설명 드리겠습니다. 프로젝트를 진행하기 위해 팀원을 모았습니다. 우선 팀원들이 공통적으로 가지는 정보를.. 2019. 11. 19.
디자인 패턴 - 데코레이터 패턴(Decorator Pattern) 데코레이터 패턴은 추가 기능이 필요 할때 서브클래스를 만들어 기능을 유연하게 확장하는 패턴을 말합니다. Component - 기본 기능인 ConcreteComponent와 추가 기능인 Decorator의 공통 기능을 정의 ConcreteComponent - 기본 기능을 구현 Decorator - 많은 수가 존재하는 Decorator의 공통 기능 정의 ConcreteDecorator - 추가 기능 정의Decorator의 하위 클래스로 기본 기능에 추가되는 개별적인 기능을 구현. ConcreteDecorator 클래스는 ConcreteComponent 객체에 대한 참조가 필요한데, 이는 Decorator 클래스에서 Component 클래스로의 ‘합성(composition) 관계’를 통해 표현됨 데코레이터 패.. 2019. 11. 18.
디자인 패터 - 옵저버 패턴(Observer Pattern) 옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴입니다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용됩니다. 한객체의 상태가바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의합니다. 옵저버 패턴의 그 구성을 보면 위의 다이어그램과 같습니다. Oserver - 데이터 변경을 통보 받는 인터페이스. 즉 Subject에서 Observer 인터페이스의 update를 호출하여 ConcreateSubject의 데이터 변경을 ConcreteObserve.. 2019. 11. 18.
디자인 패턴 - 커맨드 패턴(Command Pattern) Command 패턴이란 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴을 말합니다. 즉, 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용하고자 할 때 유용합니다. 그리고 커맨드 패턴에는 명령(command), 수신자(receiver), 발동자(invoker), 클라이언트(client)의 네개의 용어가 항상 따릅니다. 커맨드 객체는 수신자 객체를 가지고 있으며, 수신자의 메서드를 호출하고, 이에 수신자는 자신에게 정의된 메서드를 수행합니다. 커맨드 객체는 별도로 발동자 객체에 전달되어 명령을 발동하게 합니다. 발동자 객체는 필요에 따라 명령 발동에 대한 기록을 남길 수 있습니다. .. 2019. 11. 15.
반응형