일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
최대한 책의 예제코드를 따라 써봤는데 콘솔 환경에서 실행 가능한 정도로는 작성하지 못했다. 대충 코드를 수정하면 실행 가능하게 할 수 있지만 콘솔환경에서 띄우는 것은 내 맘에 안들기도 해서 개시를 안했었다. 나중에 OpenGL과 glut를 사용해서 키보드 콜백으로 명령패턴을 적용했을때 잘 작동 하였는데, 계속 개선을 해보고 다른 게시글에 다시 OpenGL/GLUT를 적용한 코드를 올려야겠다. #include using namespace std; #define BUTTON_LEFT 37 #define BUTTON_UP 38 #define BUTTON_RIGHT 39 #define BUTTON_DOWN 40 // temp key define #define BUTTON_X 65 #define BUTTON_Y ..
한개의 인스턴스만 갖는 싱글턴 패턴을 적용시켜 파일시스템을 구축해보는 예제를 보고 적용해보았다. 예제코드를 제대로 돌아가게 만들기 위해 간단히 손보았다. (private으로 되어있는 생성자 때문에 friend 클래스를 쓴다든지...) 결과적으론 잘 작동한다. 한개의 인스턴스만 생성이 되며 플랫폼에 맞는 자식 클래스가 생성이 된다. #include using namespace std; //#define SWITCH #define PLAYSTATION4 class FileSystem{ public: static FileSystem& instance(); virtual ~FileSystem(){} virtual char* readFile(char* path)=0; virtual void writeFile(ch..
기본적으로 Windows는 세가지 동적 연결 라이브러리(DLL: Dynamic Link Library)로 구성된다. - Kernel : 메모리, 프로그램 관리 - User : UI, 윈도우 관리 - GDI (Graphic Device Interface) : 화면처리, 그래픽 DC는 화면 출력에 필요한 모든 정보를 가지는 구조체이기 때문에 이 셋중 DC는 GDI와 관계가 되어있다. 하나의 윈도우에 대한 그래픽 정보를 가지고 있으며, 예를 들어 폰트, 선의 색상, 굵기, 채우는 무늬, 그리기 모드, 시작 위치 등의 정보를 가지고 있다. DC의 내부는 건들 필요없이 나머지는 디폴트 정보를 적용하고 DC의 핸들만 사용자에게 건내면 된다. DC 핸들의 자료형 : HDC HDC를 얻으려면 getDC()함수를 통하여..
// 현재 클라이언트 영역 RECT rcClient = { 0, 0, WINSIZE_X, WINSIZE_Y }; // 현재 윈도우의 크기가 클라이언트 영역이 되도록 크기를 조정(현재 윈도우 크기, 윈도우 모양 스타일, 메뉴 여부) AdjustWindowRect(&rcClient, WS_OVERLAPPEDWINDOW, FALSE); // 얻어온 사각형의 정보로 윈도우 사이즈 세팅 SetWindowPos(g_hWnd, NULL, 100, 200,// 변경할 위치(X, Y) (rcClient.right- rcClient.left), (rcClient.bottom- rcClient.top), // 변경할 크기(가로, 세로) SWP_NOZORDER|SWP_NOMOVE// 깊이변경 금지 | 이동 금지 ); Show..
#include #define START_X 0 #define START_Y 0 #define WINSIZE_X 800 #define WINSIZE_Y 600 HINSTANCE g_hInst;// 인스턴스의 핸들 선언 LPCTSTR g_ClassName = TEXT("PARK");// 클래스 이름 LPCTSTR g_WinName = TEXT("JUNE");// 윈도우 이름 HWND g_hWnd;// 윈도우의 핸들 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPRevInstance, LPSTR lpszCmdParam, int nCmdShow) { MSG Mess..
# 시나리오 기본적인 그리기 객체를 정의하자. struct Point{ int x, y; }; struct Line{ Point start, end; }; 기하학적 도형을 모두 담을 수 있도록 일반화 한다. vector을 상속받아 표현할 수도 있지만 순수 가상 함수의 쌍으로 정의하자. struct VectorObject{ virtual vector::iterator begin() = 0; virtual vector::iterator end() = 0; }; 이제 사각형 Rectangle을 시작점과 크기를 입력받아 생성하고, 사각형을 구성하는 선분들을 vector 타입 필드에 저장하여 그 꼭짓점들만 노출하는 방식으로 정의할 수 있다. struct VectorRectangle : VectorObject{ V..