Java/Design Pattern

    옵저버 패턴 (Observer Pattern)

    옵저버 패턴 (Observer Pattern)

    옵저버 패턴 (Observer Pattern) 객체의 상태 변화을 감지하고 연결된 다른 객체의 상태를 쉽게 변경할 수 있도록 한다. 일대다 의존 관계를 구성해서 하나의 객체가 상태를 변경하면 모든 의존 객체에게 자동으로 알림이 전송되고 업데이트 하는 패턴이다. 주로 사용하는 곳 알림, 이벤트 기능이 필요한 대부분의 기능에서 해당 패턴을 사용한다. Android의 Event Listener 브라우저의 Event Handler Java Swing 라이브러리(GUI) 이외에도 GUI 프로그래밍을 하거나 메시지 발송과 같은 기능을 사용한다면 옵저버 패턴이 빠질 수 없다. 용어 정리 Subject : 상태 변경을 알려주는 객체 (발행인) Observer : 상태 변경에 대한 알림을 받는 객체 (구독자) 헷갈리는 ..

    전략 패턴 (Strategy Pattern)

    전략 패턴 (Strategy Pattern)

    전략 패턴 (Strategy Pattern) 객체들이 할 수 있는 행위에 대해 전략 클래스를 생성하고, 유사한 클래스를 캡슐화하는 인터페이스를 정의한다. 객체의 행위를 동적으로 수정하고 싶은 경우, 직접 행위를 수정하지 않고 전략을 바뀌주기만 함으로써 행동을 유연하게 확장할 수 있다. 즉, 일련의 알고리즘을 정의하고 각각을 캡슐화하고, 상호 교환 가능하게 만든다. 패턴을 사용하면 알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있게 된다. 샘플 오리 프로그램 Duck을 상속받는 RedheadDuck과 MallardDuck이 존재한다. 이들은 Duck에 속하는 객체로서 공통된 quack, swim 메서드를 수행하고, display 메서드는 오버라이딩해서 각자에 맞게 사용한다. 요구사항 추가..