728x90
반응형

DesignPattern 2

팩토리 패턴(Factory Pattern)

간단한 팩토리(Simple Factory)는 디자인 패턴이라고 할 수는 없다. 프로그래밍을 하는 데 있어서 자주 쓰이는 관용구에 가깝다고 할 수 있다. 단지 워낙 자주 쓰이기 때문에 패턴이라고 표현하기도 한다. 모든 팩토리 패턴에서는 객체 생성을 캡슐화한다. 팩토리 메서드 패턴(Factory Method Pattern)에서는 서브클래스에서 어떤 클래스를 만들지를 결정하게 함으로써 객체 생성을 캡슐화한다. 팩토리 메서드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만든다. 팩토리 메서드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에 맡기는 것이다. 위의 클래스 다이어그램을 보면, Creator 추상 클래스에서 객체를 만들기..

스트래티지 패턴(Strategy Pattern)

스트래티지 패턴(Starategy Pattern)에서는 알고리즘 군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. 스트래티지 패턴을 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 오리들은 모두 CDuck을 확장해서 만들고, 나는 행동은 모두 CFlyBehavior를, 꽥꽥 소리를 내는 행동은 CQuackBehavior를 구현해서 만든다. 오리의 행동들을 일련의 행동으로 생각하는 대신, 알고리즘 군으로 생각한다면 똑같은 테크닉으로 다른 방법을 구현할 수 있다. 각 다이어그램을 구현해 보자. ////////////////////////////////////////////////////////////////////////////////////////////..

728x90
반응형