Design Pattern 2

옵저버 패턴(Observer Pattern)

정의 옵저버 패턴에는 Subject(주제)와 Observer(옵저버)가 있다 1:N 관계이다 한 객체(Subject)의 상태가 바뀌면 그 객체에 의존하는 다른 객체(Object)들에게 연락이 가고 자동으로 정보가 갱신된다 원칙 상호작용하는 객체 사이에는 가능한 느슨한 결합을 사용해야 한다 방식 Push 방식과 Pull 방식이 있다 Push 방식 주제가 갱신되면 모든 데이터를 옵저버들에게 전달한다 Pull 방식 주제가 갱신되면 옵저버에게 알림을 보내고, 옵저버는 필요한 데이터만 주제에게서 가져간다 정리 주제는 동일한 인터페이스를 사용해서 옵저버와 연락한다 Observer 인터페이스만 구현하기만 하면 어떤 구상 클래스라도 패턴에 참여할 수 있다 주제는 옵저버가 Observer 인터페이스를 구현했다는 것 외에..

Design Pattern 2022.05.28

전략 패턴(Strategy Pattern)

정의 알고리즘군을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있다 전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다 원칙 변경될 수 있는 부분은 따로 뽑아서 캡슐화한다 나중에 바뀌지 않는 부분에는 영향을 미치지 않고 그 부분만 고치거나 확장할 수 있다 구현보다 인터페이스에 맞춰서 개발한다 바뀌는 부분은 코드를 수정하지 않아도 구현체만 바꿔주면 해결할 수 있다 중복될 수 있는 인터페이스 메소드는 서브클래스에서 구현하지 않는다 상속보다 Composition을 활용한다 중복될 수 있는 인터페이스 메소드를 서브클래스에서 구현하는 경우 단점 중복될 수 있는 메소드를 일일히 구현하면 코드를 재사용하지 않으므로, 변경될 때마다 전부 찾아서 바꿔줘야 하기 때문에 관리에 큰..

Design Pattern 2022.05.27