일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 디자인 패턴
- 데커레이터
- 모던C++디자인패턴
- 브릿지 패턴
- 컴포지트 빌더
- 빌더 패턴
- 브릿지
- 싱글톤
- 팩터리 패턴
- 프로토타입
- 내부 팩터리
- 흐름식 빌더
- 함수형 팩터리
- 컴포지트
- 프로토타입 패턴
- 빌더
- 단순한 빌더
- 추상 팩터리
- 싱글톤 패턴
- 디자인패턴
- 데커레이터 패턴
- 동적 데코레이터
- 싱글턴 패턴
- 컴포지트 패턴
- 그루비 스타일 빌더
- 프로토타입 중복처리
- 싱글턴
- 팩터리 메서드
- 팩터리
- 동적 데커레이터
- Today
- Total
목록분류 전체보기 (65)
GGym's Practice Notes
데커레이터 패턴 : 어떤 기능에 추가적으로 기능을 덧붙이고 싶을 경우 그 기능들을 Decorator로 만들어서 덧붙이는 방식. 이미 존재하는 타입에 새로운 기능을 추가하면서도 원래 타입의 코드에 수정을 피할 수 있게 해준다. 시나리오 도형을 나타내는 Shape가 기존에 존재하고 있고 이를 상속받아 색상이 있는 도형과 투명한 도형을 추가한다. 나중에 두가지 속성을 모두 필요로 하는 경우가 발생하여 추가로 클래스를 만드는데 결과적으로 두가지 기능을 추가하기 위해 클래스를 3개 만들게 된다. 이런식이면 기능이 하나 추가될때마다 7개의 클래스를 만들어야 할 수도 있다. struct Shape{ virtual string str() const =0; }; struct Circle: Shape{ float radi..
개별 그래픽 객체를 렌더링할 수도 있고 여러 개의 도형을 하나의 그룹으로 렌더링할 수도 있다. 다음과 같은 인터페이스 하나면 충분하다. struct GraphicObject{ virtual void draw() = 0; }; 여러개의 사각형과 원들이 모인 그래픽 객체들도 집합적으로 하나의 그래픽 객체를 나타낼 수 있다. 원을 다음과 같이 정의할 수 있듯이 여기서 컴포지트 디자인 패턴이 드러난다. struct Circle : GraphicObject{ void draw() override{ std::cout
컴포지트 패턴 : 어떤 객체들의 집합에 대해 개별 인터페이스를 동일하게 가져갈 수 있게 하는 것 크리쳐 클래스를 정의한다. class Creature { int strength, agility, intelligence; public: int get_strength() const{ return strength; } void set_strength(int strength){ Creature::strength = strength; } // 다른 get/set 멤버 함수들... }; 통계를 내려면 단순하게 다음과 같이 만들어야 한다. 하지만 바람직하지 않다. class Creature{ // 다른 멤버들... int sum() const { return strength + agility + intelligenc..
#include // 임시 키 #define PRESS_B 'B' #define PRESS_DOWN 40 #define RELEASE_DOWN 41 // 상태를 열거형으로 정의 enum State{ STATE_STANDING, STATE_JUMPING, STATE_DUCKING, STATE_DIVING }; // 임시 키 입력을 위한 임시 클래스 struct Input{ bool operator==(char&& input){ if(input == key) return true; else return false; } private: char key; }; // 상태를 사용할 Heroine 클래스 struct Heroine{ Heroine(int maxCharge, int jumpVelocity) : MAX..
1. DirectX 초기화 stdafx.h에 추가 extern ID3D11VertexShader* VertexShader; extern ID3D11PixelShader* PixelShader; extern ID3D10Blob* VsBlob; extern ID3D10Blob* PsBlob; Device.cpp void InitDirect3D(HINSTANCE hInstance) { // SwapChain DXGI_MODE_DESC bufferDesc; // 후면버퍼 속성 구조체 ZeroMemory(&bufferDesc, sizeof(DXGI_MODE_DESC)); bufferDesc.Width = Width; bufferDesc.Height = Height; bufferDesc.RefreshRate.Num..
Device 생성 (헤더파일, cpp파일) Device.h #pragma once // Function void InitWindow(HINSTANCE hInstance, int nCmdShow); void Destroy(); WPARAM Running(); LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); // Scene void InitScene(); void DestroyScene(); void Update(); void Render(); Device.cpp #include "stdafx.h" #include "Device.h" int APIENTRY WinMain ( HINSTANCE hInstance, HINS..