본문 바로가기

Language/Java

(11)
Part 17. Observer 17. Observer 패턴 - 객체의 상태 변화에 따른 처리를 기술할 때 유용하게 사용된다. - 관찰 대상의 상태가 변하면, 관찰자에게 통지된다. - 관찰자와 관찰 대상을 논리적으로 분리함으로써, 각각을 쉽게 교체할 수 있다 - 객체의 상태변화를 다른 객체에게 통지 - 1 : N 패턴이다 ● 클래스 다이어그램 ※ Observer 인터페이스 (Observer(관찰자) 역할) - 관찰자를 표현하는 인터페이스 package ch17.A1; //관찰자 public interface Observer { //통지받을 때 호출되는 메소드 public abstract void update(NumberGenerator generator); } ※ NumberGenerator 클래스(Subject(관찰 대상자) 역할 )..
Part 16. Mediator 16. Mediator 패턴 - 복잡하게 얽혀있는 객체들 간의 상호 통신을 중재시키고 객체들 간의 상호 작용 로직을 Mediator에 집중시킴으로써 처리를 원할하게 한다. - 중간에 의견을 조정하는 사람 - ‘카운셀러’는 각 멤버가 올린 보고를 토대로 대국적인 지시를 내리고 모든 멤버는 이 지시에 따른다 - 다수의 객체를 조정해야 하는 경우 사용된다. - 통신 경로의 가파는 증가를 억제해 줌 - 분산 시킬 것은 분산시키고, 집중시킬 것은 집중시키는 것이 중요하다 ● 클래스 다이어그램 ● 시퀀스 다이어그램 ※ Mediator 클래스 (조정자, 중개자)의 역할 - ‘카운셀러’를 표현하는 인터페이스 package hw.ch16; public interface Mediator { // Colleague를 생성한..
Part 12. Decorator 12. Decorator 패턴 - 중심이 되는 객체에, 장식과 같은 부가적인 기능을 하나씩 입혀서 좀 더 목적에 어울리는 객체를 만드는 것 - 대상을 변경하지 않고, 동적으로 기능을 추가할 수 있다 - 결과가 다시 대상이 될 수 있음 - Decorator 패턴에서는 위임이 사용된다. ● 클래스 다이어그램 ※ Display 클래스 (Component의 역할) - 기능을 추가할 때 핵심이 되는 역할 - show메소드 : Template Method 패턴이 적용됨 package hw.ch12; public abstract class Display { public abstract int getColumns(); // 가로 문자 수를 얻는다 public abstract int getRows(); // 세로 행수를..