본문 바로가기

Software Design Pattern

재귀적 합성을 사용한 설계 방법

재귀적 합성을 사용한 설계 방법.


재귀적 합성을 통한 복합 객체의 구성 - Composite


메뉴가 선택된 사실을 다시 외부로 알려야 함.

“객체가 외부로 이벤트를 발생시킨다”라고 표현.


자바에서 이벤트를 처리하는 방법

인터페이스 기반 리스너 방식(일종의 전략 패턴이다)

문제점

모든 객체가 결국 인터페이스 메소드를 호출하므로,

어떤 객체에서 이벤트가 발생했는지 구분하는 코드를 작성해야 한다.

“OCP를 만족 할 수 없다."

onCommand()가 어떤 호출인지 확인하는 id같은 자료구조가 필요하다.

=> 요즘에는 핸들러 방식의 이벤트 처리 방식(하지만 자바에서는 구현 불가)


IMenuListener


관찰자 패턴 : Observer Pattern

의도 : 등록된 모든 객체에게 이벤트를 발생


최신 자바의 이벤트 처리 방법


MVC

관찰자패턴 + 어댑터 패턴


관찰의 대상(Subject, Model, Document)

모든 테이블의 공통의 특징(관찰자 패턴의 기본 로직)은 항상 동일하다.

달라지는 것은 메소드 재정의로 변경한다면,

공통적인 것은 부모 클래스로 만들어서 제공


Command패턴

명령을 객체로 캡슐화(명령 자체를 캡슐화)

- 메디에이터 패턴과 비슷하다.


간접층의 원리

: 소프트웨어 난제는 간접층을 도입함으로써 그 문제를 해결할 수 있다.

=> 객체로 캡슐화


// 공통된 로직은 부모클래스로 묶어 주는 것이좋다........


Factory Method Pattern

: Template Mothod Pattern의 모양인데

자식이 재정의하는 메소드가 하는 일이 정책의 변경이 아닌

객체 생성이라면