일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 입출력장치
- 138477
- 풀이
- DirectX
- 멀티스레드
- 혼자 공부하는
- 인터럽트
- 보조기억장치
- BFS
- 지역변수
- 그래프
- Transform
- static
- C++
- 운영체제
- 스레드
- DDR SDRAM
- dfs
- 코딩테스트
- 컴퓨터구조
- 프로세스
- 프로그래머스
- 장치컨트롤러
- 한빛미디어
- 131701
- 독학
- 혼자공부하는
- 렌더링 파이프라인
- 컴퓨터 구조
- CPU 스케줄링
- Today
- Total
목록프로그래밍/디자인 패턴 (2)
빼미의 개발일기

● 경량 패턴(Flyweight Pattern) - 내용이 같은 객체가 있다면 내용을 공유하여 메모리 사용량을 줄이는 방법. ※ 대표적인 경량 패턴 예 인스턴싱 (Instancing) - 필드에 나무를 깐다고 가정한다. 그리고 나무들 각자의 메시, 텍스쳐, 위치정보 등을 가지고 있을 것이고, 그림과 코드로 작성하면 다음과 같다. class Tree { private: Mesh mesh_; Texture bark_; Texture leaves_; Vector position_; double height_; double thickness_; Color barkTint_; Color leafTint_; } - 메시와 텍스처는 데이터도 많고 크기도 크다. 한 그루의 나무를 그리는데 위의 클래스로 전부 만들기에는..

● 명령 패턴 (Command Pattern) - 메서드 호출을 실체화 한것. 즉 객체로 감싼 것. ※ 대표적인 명령 패턴 예 입력키 변경 실행 취소와 재실행 ○ 예시1) 입력키 변경 - 각 버튼에 직접적으로 연결된 함수가 다음과 같다고 가정한다. - 위 그림을 코드화 시켜본다면 void InputHandler::InputButton() { if(Pressed(BUTTON_X) jump(); else if(Pressed(BUTTON_Y) shooting(); else if(Pressed(BUTTON_A) action(); else if(Pressed(BUTTON_B) change_weapon(); } - 처럼 할 수 있겠지만, 이러면 해당 버튼의 기능을 게임 내에서 변경할 수는 없을 것이다. 각각의 버튼..