목록디자인패턴 (2)
천천히 빛나는

한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의하는 디자인패턴이다.⇒ 옵저버 패턴 = 주제(subject) + 옵저버(observer)구독을 하면 정보가 업데이트 될 때마다 연락이 가고, 구독을 해지하면 더 이상 연락이 오지 않는다.Subject 객체에서 하나하나 호출해서 알림을 보내는 것이 아니라, observer 객체들이 Observer 인터페이스를 상속해서 Subject 객체에서 List로 Observer 객체를 담아야 한다.위 그림도 Subject 인터페이스가 Observer 인터페이스를 많이 가지고 있는 형태이다.여기서 Subject를 보면 state라는 변수를 가진 것을 가지고 있는데, sta..

전략 패턴실행 중에 알고리즘을 선택할 수 있게 하는 디자인 패턴이다.전략 패턴은 특정한 계열의 알고리즘들을 정의하고 각 알고리즘을 캡슐화하며 이 알고리즘들을 해당 계열 안에서 상호 교체가 가능하게 만든다.변경 가능성이 큰 부분을 분리하고, 인터페이스를 이용하여 구현체로 캡슐화하여 실행 중 해당 구현체만 setter 등의 메서드로 상호 교체 가능하게 만드는 것이다.예시라는 오리 시뮬레이션 게임이 있다. 이 게임에는 다양한 오리들이 존재한다. 오리들은 헤엄도 치고 꽥꽥 소리도 낸다.현재 이 게임은 Duck이라는 슈퍼클래스와 이 클래스를 상속받은 다양한 종류의 오리 클래스가 존재한다.Duck 이라는 슈퍼클래스에는 헤엄을 치는 swim() 메소드, 꽥꽥 소리를 치는 quack() 메소드, 그리고 각 오리의 생김..