go
[디자인 패턴] 템플릿 메서드 패턴
개념 템플릿 메서드 패턴은 행위 패턴의 일종으로 객체의 메소드에 대해서 변경이 되는 부분들에 대해서 서브 클래스의 그 책임을 위임하는 패턴이다. 추상 기본 클래스 : 템플릿 메서드(알고리즘의 골격)을 정의하며, 이 클래스에는 알고리즘의 각 단계를 실행하는 메서드도 정의된다. 일부 메서드는 기본 클래스에서 정의되며 일부는 서브클래스에서 반드시 구현되어야하는 추상 메서드일 수 있다. 구체적인 클래스 : 추상 기본 클래스를 상속받아 특정 단계를 구체적으로 구현한다. 이러한 구현은 알고리즘의 변하지 않는 구조내에서 특정 작업을 수행한다. 구현 https://github.com/RicardoKim/DesignPattern-Go-/tree/main/template_method_pattern DesignPattern..
[디자인 패턴] 옵저버 패턴
정의 한 객체가 상태가 바뀌면 그 객체에 의존하는 다른 객체에 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의하는 패턴 주체는 상태가 바뀌는 객체이고 옵저버는 이러한 주체의 상태를 관찰하는 객체이다. 주체가 상태가 갱신이 되었을 때 옵저버가 수동적으로 주체한테 정보를 받게 되면 푸시방식, 옵저버가 필요할 때 주체의 상태를 가져오게 되면 풀 방식으로 불린다. 장점 느슨한 결합 : 두 객체가 상호작용을 할 때 서로에 대해서 강하게 결합이 되지 않게 되면 객체의 변화가 다른 객체로 전파되지 않는다. 옵저버 패턴을 사용하면 주제 객체와 옵저버 객체들은 상호작용을 하긴 하지만 서로 강하게 결합되지 않아 동적인 구독 관리 : 옵저버는 구독하고 있는 객체의 목록을 관리하기 때문에 옵저버가 추가되거..