
Head First Design Patterns 2. Observer Pattern
2022. 2. 6. 23:52
Design Patterns
옵저버 패턴(Observer Pattern) 동작 방식 옵저버 패턴(Observer Pattern)에서는 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의합니다. code reference 주제 객체에 옵저버를 옵저버 목록에 추가합니다. 주제 객체의 값이 바뀌면 등록된 옵저버들에게 연락을 합니다. 데이터를 받을 필요가 없는 옵저버들은 옵저버 목록에서 삭제합니다. 느슨한 결합(Loose coupling)의 위력 옵저버 패턴에서는 주제와 옵저버가 느슨하게 결합되어 있는 객체 디자인을 제공합니다. 주제가 옵저버에 대해서 아는 것은 옵저버가 특정 인터페이스를(Observer Interface)를 구현한다는 것 ..

Head First Design Patterns 1. Strategy Pattern
2022. 2. 5. 23:31
Design Patterns
패턴 관련 코드는 아래 링크를 통해 확인 가능합니다. sample source code 상속만 사용했을 경우의 단점 상속을 사용하면 코드를 재사용할 수 있지만, 실제 코드를 정비를 하는 데에는 어려움이 있을 수 있습니다. 예를 들어, 자식 클래스에서 부모 클래스와 다른 방식으로 method 로직을 수행해야 한다면 상속을 굳이 사용할 필요가 있을까요? code reference 소프트웨어를 만들 때, 나중에 혹시 고쳐야 할 때도 기존 코드에 미치는 영향은 최소한으로 만들면서 작업할 수 있도록 설계를 해야합니다. 그래서 상속을 사용할 때와 인터페이스를 사용할 때를 적절하게 구분할 수 있어야 합니다. Design Principal 1. 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분으로부터 분리..