design pattern

    전략 패턴 (Strategy Pattern)

    전략 패턴 (Strategy Pattern)

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

    [디자인 패턴] Observer Pattern (behavioral)

    [디자인 패턴] Observer Pattern (behavioral)

    용어 정리 Subject : 데이터(db) Observer : subject에 관심을 가지고 사용하는 클래스 또는 컴포넌트 사용 용도 및 상황 각각의 observer들이 subject에 대한 알림에 대응해 서로 다른 행동을 취해야 할 때 subject이 하나의 observer에 의해 변경되었을 때, 모든 observer들이 알림을 받아야 하고 그에 따른 업데이트를 진행해야 하는 경우 해결 방안 subject을 설계할 때 observer의 행동에 영향을 받지 않도록 설계해야한다. 모든 subject은 observers에 대해서 독립적이어야 한다. Observer Pattern의 구조 Subject와 Observer 클래스는 추상클래스로서 각각 ConcreteSubject와 ConcreteObserver의 ..