일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 디자인 패턴
- 브릿지
- 팩터리 패턴
- 프로토타입 패턴
- 프로토타입 중복처리
- 컴포지트
- 빌더 패턴
- 싱글톤 패턴
- 단순한 빌더
- 브릿지 패턴
- 데커레이터 패턴
- 그루비 스타일 빌더
- 동적 데코레이터
- 팩터리
- 내부 팩터리
- 싱글턴
- 동적 데커레이터
- 싱글톤
- 함수형 팩터리
- 디자인패턴
- 팩터리 메서드
- 컴포지트 빌더
- 흐름식 빌더
- 싱글턴 패턴
- 컴포지트 패턴
- 데커레이터
- 빌더
- 모던C++디자인패턴
- 추상 팩터리
- 프로토타입
- Today
- Total
목록프로토타입 (3)
GGym's Practice Notes
자주 복제해서 사용할 기본 객체들이 미리 정해져있다면 프로토타입 팩터리를 사용하는 것이 좋을 수 있다. 전역변수를 선언하여 복제해 사용해도 좋겠지만 프로토타입을 저장한 별도의 클래스를 두고 사용자가 원할 때, 목적에 맞는 복제본을 요구받는 시점에 만들어 제공하는 것이다. struct EmployeeFactory{ static Contact main; static Contact aux; static unique_ptr NewMainOfficeEmployee(string name, int suite){ return NewEmployee(name, suite, main); } static unique_ptr NewAuxOfficeEmployee(string name, int suite){ return NewE..
책에서는 직렬화도 소개한다. (모던CPP디자인패턴/https://book.naver.com/bookdb/book_detail.nhn?bid=14742427) 직렬화는 어떠한 객체 데이터를 비트의 나열로 만들어 파일로 저장하거나 네트워크로 전송할 수 있게 하는것을 말한다. 직렬화를 사용하면 객체복제를 쉽게 할 수 있게 만든다. 객체를 비트열로 나타내고 역직렬화를 통해 모든 정보와 내부 구성요소들을 복구 할 수 있다. 이 작업은 복제작업과 동일하다. C++은 아쉽게도 직렬화를 표준으로 지원하지 않는다. Boost 라이브러리를 사용하여 지원하지만 나는 라이브러리나 코드생성기의 도움 없이 코드를 구현하고 싶다... 전체 코드 : #include #include #include #include #include u..
# 객체 생성 아래의 두 객체는 중복된 부분이 있다. contact john{ "John Doe", Address{"123 East Dr", "London", 10}}; contact jane{ "Jane Doe", Address{"123 East Dr", "London", 11}}; john과 jane은 사무실 방만 다르고 같은 건물에서 일하고 있다. (다른 사람들도) 수많은 객체가 같은 값으로 중복되게 초기화 되는 작업이 발생한다. 프로토타입 패턴은 객체의 복제가 주요기능이다. # 평범한 중복처리 복제의 목적이 값을 사용하는 것에 있고, 복제 대상 객체의 모든 항목이 값으로만 되어있다면 복제하는데 문제 될 것이 없다. 예로 연락처와 주소가 다음과 같이 정의되어 있다면, struct Address{ s..