[행동 패턴] 반복자 패턴 - Iterator 반복자 패턴은 리스트와 같은 집합 객체들이 내부 표현부를 노출하지 않고 어떤 집합 객체에 속한 원소들을 순차적으로 접근하는 패턴입니다. (C++ 에서는 기본적으로 STL 컨테이너를 순회하는 iterator를 기본으로 제공합니다.) 목적 내부 표현부를 노출하지 않고 어떤 집합 객체의 속한 원소들을 순차적으로 접근할 수 있는 방법을 제공합니다. 활용 - 정의한 방법과 다른 방법으로 원소들을 순회하고자 할 때- 동일한 리스트에 대해서 하나 이상의 순회방법을 정의하고 싶을 때- 객체 내부 표현 방식을 모르고도 집합 객체의 원소에 접근하고 싶을 때- 집합 객체를 순회하는 당양한 방법을 지원하고 싶을 때- 서로 다른 집합 객체 구조에 대해서도 동일한 방법으로 순회하고 ..
프로그래밍 관련/디자인 패턴
[디자인 패턴] 관찰자 패턴 - Observer 해당 패턴에 들어가기에 앞서 관찰자 디자인 패턴은 닷넷에 (무려! MSDN!!)에 설명되어 있고 또한사용 가능한 인터페이스를 제공해주고 있습니다. [MSDN 관찰자 패턴] push_back(ob);} void Subject::Detach(Observer* ob){ _observers->remove(ob);} void Subject::Notify(){ auto iter_observer = _observers->begin(); for (iter_observer; iter_observer != _observers->end ; iter_observer.operator++) { (*iter_observer)->Update(this); }}Colored by Colo..
[행동 패턴] 명령 패턴 - Command [이미지 출처 : http://www.codeproject.com] 목적 요청 자체를 캡슐화하여 , 요청이 서로 다른 사용자를 매개변수로 만들고, 요청을 대기시키거나 로깅하며, 되돌릴 수 있는 연산을 지원하기 위해서 사용합니다. 활용 - 수행할 동작을 매개변수화 하고자 할때- 서로 다른 시간에 요청을 명시하고, 저장하며, 실행하고 싶을 때, - 실행 취소 기능을 지원하고 싶을 떄- 기본적인 연산의 조합으로 상위 수준의 연산을 써서 시스템을 구조화 시키고 싶을 때 장점 - 명령을 여러 개 조합해서 복합 명령을 만들 수 있습니다.- 새로운 Command 객체를 추가하기 쉽습니다. 단점 - 명령의 취소를 반복적으로 누적될 경우에 오류가 발생될 수 있습니다.- 취소가 ..
[생성 패턴] 추상 팩토리 패턴 - Abstract Factory [ 이미지 출처 : http://www.c-jump.com ] 목적 상세화된 서브 클래스를 정의하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공하기 합니다. 활용 - 객체가 생성되거나 구성.표현되는 방식과 무관하게 시스템을 독립적으로 만들고자 할때 - 여러 제품군 중 하나를 선택해서 시스템을 설정해야 하고 한번 구성한 제품을 다른 것으로 대체할 수 있을 때 - 관련된 제품 객체들이 함께 사용되도록 설계되었고, 이 부분에 대한 제약이 외부에서도 지켜지도록 하고 싶을 때 - 제품에 대한 클래스 라이브러리를 제공하고 , 구현이 아닌 인터페이스를 노출하고 싶을때. 장점 1. 구체적인 클래스 분리 2. 재..
[책은 그냥 마구마구 사들였다..] 객체지향을 이해하려면 디자인 패턴을 공부하느것이 좋다! 라는 말을 들어서 인지..눈에 보이는대로 하나씩 사기 시작하니까 총 3권이다..게임 디자인 패턴의 경우 국내 출시전에 pdf 파일을 구매해서 인쇄소에서 제본을 떠버렸다..물론 이해하기는 어려웠지만..아무튼.. 이제 학원에 다니지 않는 상황이 되었기 때문에 연습용 게임 제작 틈틈히 패턴 공부를 해야겠다..(그래픽스도 해야하고..할께 많다..ㅠ) 책의 내용이 대부분 Java나 C로 되어 있어서 c# 까지는 어려워도 개념의 이해를 하고 넘어가야겠다!이제부터 시작!