본문 바로가기

Design Patterns

Observer Pattern 옵저버 패턴은 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 이를 알리고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의한다. 이때 상태가 바뀌는 주체를 주제(Subject), 주제의 상태 변경에 따라 갱신되는 주제를 관찰, 구독하는 객체를 옵저버(Observer)라고 한다. 옵저버 패턴은 주제의 상태변경을 알아야하는 객체들이 주제의 상태변경시 자동으로 상태가 변경이 되거나 특정한 행동을 하도록 하면서도 주제와 옵저버들간 느슨한 연관관계를 가짐으로서 유연한 설계가 가능하다는 장점이 있다. 좀더 구체적으로 특징을 살펴보면, 첫 번째로 옵저버 패턴은 주제에 대한 이벤트 발생을 옵저버가 구독하는 형태를 취하며, 주제는 구체적인 옵저버에 대한 정보를 알 수 없고, 옵..
Builder Pattern class에 선택적 인자가 다수 있는 경우 생성자를 어떻게 구현하는 것이 적합한가. 여러 방법이 존재하겠지만 처음 생각해볼 수 있는 방법은 점층적 생성자 패턴일 것이다. 필수인자를 받는 생성자를 정의하고, 선택적 인자를 점층적으로 추가하는 방식으로 생성자들을 구현하는 것이다. 하지만 점층적 생성자 패턴은 인자 수가 늘어나면 클라이언트 코드를 작성하기 어려워지고, 코드가 읽기 어려워진다는 문제가 있다. 또한 인자들이 서로 바뀌어 들어가게 되었을 때 발생하는 버그를 쉽게 잡아내기 어렵게 되는 등 문제가 발생하기 쉽다. 그래서 이에 대한 대안으로 자바빈 패턴을 이용할 수 있다. 자바빈 패턴은 인자없는 생성자를 호출하여 객체를 생성하고, setter method를 이용하여 필드 값들을 채워나가는 방식을 의미한다..