본문 바로가기 메뉴 바로가기

엘키의 주절 주절

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

엘키의 주절 주절

검색하기 폼
  • 분류 전체보기 (360)
    • BlahBlah (40)
    • Book review (44)
    • C++ (62)
      • boost (2)
      • General (41)
      • network (0)
      • Debugging (9)
      • Rendering (5)
      • Visual Studio (5)
    • Java (0)
    • C# (2)
      • Unity (1)
      • General (1)
      • Winform (0)
    • Web (15)
      • General (1)
      • Django (3)
      • Ruby on Rails (10)
      • Node.js (1)
    • Network (23)
    • Scripts (13)
      • Python (1)
      • Ruby (9)
      • JavaScript (2)
      • Batch (1)
    • General (43)
      • Parerell (8)
      • Algorithm (0)
      • DataStructure (0)
      • AI (1)
      • Multimedia (1)
      • XML (1)
      • Profiling (2)
      • Environment (8)
      • Hardware (1)
      • Utility (18)
      • Etc (3)
    • OS (14)
      • Windows (7)
      • Linux (7)
    • Software Engineering (46)
      • Unittest (4)
      • Design Pattern (19)
      • Develop Theory (9)
      • Knowhow (14)
    • Database (19)
      • General (7)
      • PostgreSQL (2)
      • MS-SQL (8)
      • MySQL (0)
      • SQLite (2)
      • Redis (0)
    • Reverse Engineering (14)
    • Open source (25)
      • Game (9)
      • EzShortcut (11)
      • Libraries (5)
      • Light (0)
  • 방명록

Software Engineering/Design Pattern (19)
컴포지트 패턴 (Composite)

같은 종류 (같은 부모 클래스에서 상속 받은)의 객체들을 동일한 인터페이스로 다룰 수 있는 방법을 컴포지트 패턴이라고 합니다. 다운 캐스팅을 사용하지 않기 위한, 객체 지향의 기본 초식이라 볼 수 있죠. 템플릿 메소드,어댑터 패턴을 비롯한 다양한 패턴들이 컴포지트 패턴을 이용하고 있으며, C++ 에서는 가상 함수로써 컴포지트 패턴을 쉽게 구현할 수 있습니다.

Software Engineering/Design Pattern 2008. 2. 5. 13:39
이터레이터 패턴 (Iterator)

자료 구조를 탐색할 때, 내부 동작 방식을 알 필요 없이 모든 원소를 순차적으로 접근 할 수 있는 방법을 제공 하는 것을 이터레이터 패턴이라고 부릅니다.

Software Engineering/Design Pattern 2008. 2. 5. 11:31
옵저버 패턴 (Observer)

옵저버 패턴은 변화를 감지할 동작을 설정했을 때, 해당 동작이 이루어졌다는 것을 알려주는 이벤트 핸들러를 떠올리면 쉽게 이해가 될 것이다. 특정 객체에 변화가 있었는지 늘 검사하는 것 보다, 변화가 있었을 때만 그 변화를 통보 받는 것이 관리하기 쉽기 때문에 옵저버 패턴을 사용한다. 패턴 적용 전class GameMonitor { public: GameMonitor(int nCurrentUserCount, int nRoomCount) : m_nCurrentUserCount(nCurrentUserCount) , m_nCurrentRoomCount(nRoomCount) { } void SetCurrentUserCount(int nCurrentUserCount) { m_nCurrentUserCount = nC..

Software Engineering/Design Pattern 2008. 2. 4. 17:09
어댑터 패턴 (Adaptor)

이미 존재하는 코드와 내가 원하는 인터페이스가 서로 다를 때, 인터페이스들 간에 소통을 돕는 연결 클래스를 두는 것이 좋습니다. 그렇게 중재자 역할을 해주는 클래스를 쓰는 것을, 어댑터 패턴이라고 부릅니다. 패턴 적용 전 enum QUEST_TYPE { QUESTTYPE_NONE = -1, QUESTTYPE_ORDER, QUESTTYPE_INSTANCE, }; const int MAX_ORDER_QUEST_NO = 1000; class OrderQuest { int m_nLastOrderQuestNo; public: OrderQuest(int a_nLastOrderQuestNo) { m_nLastOrderQuestNo = a_nLastOrderQuestNo; } bool isQuestRecvState()..

Software Engineering/Design Pattern 2008. 2. 4. 15:34
프로토타입 패턴 (Prototype)

프로그램을 작성하다보면, 특정 객체의 복사본이 필요할 때가 있다. 이럴 때, 팩토리를 이용해 같은 종류의 객체를 만든 후 필요한 데이터를 복사하는 방식은 매우 번거롭습니다. 이 때 복사 생성자등을 통해 객체의 복사본을 만드는 것을 프로토타입 패턴이라고 합니다. class Item { protected: int m_nItemIdx; //아이템고유번호 int m_nItemNo; //아이템식별번호 public: Item() { m_nItemIdx = -1; m_nItemNo = -1; } Item(const Item & a_Item) { m_nItemIdx = a_Item.m_nItemIdx; m_nItemNo = a_Item.m_nItemNo; } virtual Item *Clone(){ return new..

Software Engineering/Design Pattern 2008. 2. 4. 14:04
빌더 패턴 (Builder)

여러 다른 객체를 조합해야 할 경우, 그 객체 들을 조립하는 코드가 중복이 될 여지가 있습니다. 여러 객체를 조합해 객체를 만드는 과정을 전담하는 클래스를 두는 것을 빌더 패턴이라고 부릅니다. enum ITEM_OPTION_TYPE { ITEMOPTIONTYPE_NONE = -1, ITEMOPTIONTYPE_HEAL, ITEMOPTIONTYPE_POISON, }; class ItemOption { ITEM_OPTION_TYPE m_ItemOptionType; public: ItemOption(ITEM_OPTION_TYPE itemoptiontype){ m_ItemOptionType = itemoptiontype; } }; class ItemOptionHeal : public ItemOption { //체..

Software Engineering/Design Pattern 2008. 2. 3. 11:24
템플릿 메소드 패턴 (Template method)

함수 동작 방식은 부모 클래스에서 정의 되고, 세부적인 처리 방법은 자식 클래스에서 재정의 하는 것을 템플릿 메소드 패턴이라고 합니다. 각 클래스 마다 고유한 같은 인터페이스를 제공하면서도, 다른 동작을 하기 위한, 객체 지향 프로그래밍에서의 다형성을 나타내는 대표적인 패턴이라고 할 수 있습니다. class ItemOption { virtual bool isUseItem(){return true;} //아이템이사용가능한상태인지 virtual bool Use(){return true;} //아이템사용 virtual bool Act() { if(!isUseItem()) return false; return Use(); } }; class ItemOptionHeal : public ItemOption { vi..

Software Engineering/Design Pattern 2008. 2. 3. 10:25
팩토리 메소드 패턴 (Factory Method)

어떠한 객체를 생성할 것인지를 자식 클래스 마다 다르게 하여, 클래스마다 다른 객체를 갖도록 하는 것을 팩토리 메소드 패턴이라고 합니다. class ItemOption { //각종멤버 }; class ItemOptionHeal : public ItemOption { //체력회복기능 }; class ItemOptionPoison : public ItemOption { //독기능 }; class ItemDurationType { //각종멤버 }; class ItemDurationTypeCount : public ItemDurationType //갯수제 { //갯수제처리 }; class ItemDurationTypeTime : public ItemDurationType //시간제 { //시간제처리 }; cla..

Software Engineering/Design Pattern 2008. 2. 2. 16:09
이전 1 2 3 다음
이전 다음
공지사항
  • 나에 대해서~
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • I am Not Okay
  • Jacking
  • Flexible Gameserver
  • 아름다운 네트웍 세상 since 1996.
  • 애자일 이야기
  • 류광의 번역 이야기
  • Joel on software
  • B-612
  • 디지털 보단 아날로그
TAG
  • 루비
  • TraceRoute
  • SQLite Spy
  • EzShortcut
  • ftp
  • NDC2013
  • perfmon
  • EasyExec
  • CppSQLite
  • 게임데브포에버
  • c언어
  • 게임개발포에버
  • Ruby on Rails
  • ruby
  • svn
  • 루비 온 레일즈
  • 리버스 엔지니어링
  • 임백준
  • MS-SQL
  • 멀티스레드
  • 엘키
  • 디자인 패턴
  • 바로가기 프로그램
  • Rails
  • SDL
  • 좋은 프로그래머
  • 디버깅
  • RoR
  • 조엘 온 소프트웨어
  • TDD
more
«   2025/08   »
일 월 화 수 목 금 토
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바