Java/Design Pattern 3

[Design Pattern] Chain of Responsibility Pattern

책임 연쇄 패턴( Chain of Responsibility Pattern ) 명령 객체와 일련의 처리 객체를 포함하는 패턴 각각의 처리 객체는 명령 객체를 처리할 수 있는 연산의 집합이며 체인 안의 처리 객체가 핸들링 할 수 없는 명령은 다음 처리 객체로 넘겨진다. 체인에 들어가는 객체를 바꾸거나 순서를 바꿈으로서 역할을 동적으로 추가/제거 및 상황에 따라 동적으로 핸들러를 추가하거나 제거 할 수 있으며 이러한 변화가 전체 구조에 아무런 영향을 주지 않도록 클래스들 간의 낮은 결합도로 구현되어있다. 명령에 대한 처리가 반드시 수행된다는 보장이 안되므로 반드시 명령이 처리 될 수 있도록 적절한 체인의 순서 구현 필요 ※ Sample Code public abstract class Middleware { ..

Java/Design Pattern 2020.11.23

[Design Pattern] Observer Pattern

옵저버 패턴 (Observer Pattern) 객체 사이에 일 대 다의 의존 관계를 정의해 두어, 어떤 객체의 상태가 변할 때 그 객체에 의존성을 가진 다른 객체들이 그 변화를 통지받고 자동으로 갱신될 수 있게 하는 패턴 자바에서 Observable Class , Observer 인터페이스 제공 통보를 하는 클래스가 Observable 이고, 통보를 받는 클래스가 Observer 이다. Observable는 여러개의 Observer를 가질수 있다. Push 방식 (통보), Pull(원하는 시점에 update) 두가지 방식 구현 가능하다. # Observable를 상속받는 클래스 생성 package ObserverPattern; import java.util.Observable; public class C..

Java/Design Pattern 2020.10.02

[Design Pattern] Command Pattern

커맨드 패턴( Command Pattern ) 객체의 행위(메서드)를 클래스로 만들어 캡슐화 하는 패턴. 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용하고자 할 때 유용하다. package CommandPattern; // 입력된 Command를 실행시키는 클래스 public class Button { private Command theCommand; public Button( Command theCommand ) { setCommand( theCommand ); } public void setCommand( Command new..

Java/Design Pattern 2020.09.26