디자인 패턴
-
전략 패턴(Strategy Pattern)디자인 패턴 2016. 6. 6. 19:42
Creating a method that behaves differently depending on the argument object that you pass itThe method contains the fixed part of the algorithm to be performed, and the Strategy contains the part that varies. The Strategy is the object that you pass in, and it contains code to be executed.
-
옵저버 패턴(Observer Pattern)디자인 패턴 2013. 6. 27. 20:56
'발행/구독(Publish/Subscribe) 모델'로도 알려져 있다.한 객체(subject)의 상태가 바뀌면 그 객체에 의존(dependent)하는 다른 객체들(옵저버, 리스너, 트리거)한테 연락이(callback, 이벤트) 가고 자동으로 뷰의 내용이 갱신되는 방식으로 일대다(One-to-Many) 의존성을 정의e.g. 모델/뷰 패러다임public interface Subject { public void registerObserver(Observer o); /* 옵저버 등록 메소드*/ public void removeObserver(Observer o); /* 옵저버 제거 */ public void notifyObservers(); /* 옵저버에 내용 전달 */} public interface Obse..
-
Data Access Object(DAO) pattern디자인 패턴 2013. 6. 19. 02:21
* 역할> Business Object :Business Object는Data클라이언트를 대표한다.이것은Data source에 접근하여 데이트를 얻거나 저장하는 것을 목표로하는 객체이다.Business Object는Session Bean, Entity Bean또는 별도의Java Object로 구현된다.> Data Access Object :Data Access Object은 이 패턴에서 중요한 객체이다. Data source에 투명한 접근을 가능하게 하기 위하여Data AccessObject은Business Object을 위해 근본적인 데이타 접근를 추상한다. BusinessObject은Data AccessObject에게Data load와store행위를Delegate한다.> DataSource :Data..
-
방문자(비지터) 패턴디자인 패턴 2010. 11. 17. 17:26
(데이터 구조 내의) 객체 타입별로 달리 적용되어야 하는 오퍼레이션을 (순회하는) 방문자 객체에 정의type separation from visitor object to make change modular without editing and recompiling existing classes 처리되어야 하는 요소에 대한 클래스를 변경하지 않고 새로운 오퍼레이션을 정의각 클래스로부터 관련된 오퍼레이션을 모아 visitor라는 별도의 클래스로 만들고 이를 전달하여 순환구조를 수정하지 않고도 실질적으로 새로운 동작을 기존의 객체 구조에 추가할 수 있게 된다 "컨테이너에 포함되어 있는 객체의 구조(accessor)는 고정적인데 그 객체(의 구조)에 적용되어야 하는 오퍼레이션은 정해져 있지 않으므로, 그 객체에 ..
-
생성 패턴디자인 패턴 2009. 6. 27. 19:00
심플 팩토리(?) 위임(?) 공통의 인터페이스를 가진 개체를 생성하는 메소드 #include #include using namespace std; // Abstract Base Class class Shape { public: virtual void Draw() = 0; // Static class to create objects // Change is required only in this function to create a new object type static Shape* Create(string type); }; class Circle : public Shape { public: void Draw() { cout