DesignPatterns/행동

    전략 패턴과 템플릿 콜백 패턴

    전략 패턴(Strategy Pattern) 이전 시간에 템플릿 메서드 패턴을 이용하여 AI Seller 의 발주 자동화를 구현해봤다. 하지만 템플릿 메서드 패턴의 상속으로 인한 결합도 증가 및 서브 클래스에서 불필요한 메서드 구현 등의 단점으로 인해 소스를 수정해야하는 상황이다. 이번 시간에 전략 패턴(Strategy Pattern)을 이용하여 AI Seller 의 발주 자동화 기능을 좀 더 유연하게 구현해볼 것이다. 전략 패턴 구현 예제는 '템플릿 메서드 패턴'에서 다룬 예제를 그대로 사용합니다. 디자인 원칙과 정의 디자인 원칙 상속 보다는 구성(Composition)을 사용하라. 정의 전략 패턴은 한 유형의 알고리즘을 보유한 상태에서 런타임에 적절한 알고리즘을 선택하는 기법이다. 전략을..

    템플릿 메서드 패턴

    템플릿 메서드 패턴(Template Method Pattern) 템플릿(Template) 이라는 단어에서 알 수 있듯이, 템플릿 메서드 패턴은 어떤 작업 알고리즘의 골격을 정의한다. 공통 기능과 세부기능을 갖도록 구현할 수 있으며, 세부 기능은 서브 클래스마다 달라질 수있다. 즉, 템플릿 메서드를 이용하면 알고리즘의 구조를 그대로 유지하면서 특정 단계만 서브 클래스에서 새로 정의하도록 할 수 있다. 생성 단계 상위 클래스(알고리즘 골격)를 캡슐화 한다. 서로 공통점이 있는 메서드를 일반화 하여 새로 만든다. 어떤 알고리즘에 대한 템플릿 역할을 메서드가 한다. 서브클래스에서 특정 알고리즘에 선택적으로 적용되야 하는 경우에는 후크(hook) 를 사용한다. AI Seller 지금으로부터 5년뒤, 높은 임금 문..