일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
목록싱글턴 (2)
GGym's Practice Notes
모노스테이트는 싱글턴의 변형이다. 겉보기엔 일반 클래스 같지만 싱글턴처럼 동작한다. class Printer{ static int id; public: int get_id() const{ return id;} void set_id(int value) { id = value;} }; static 데이터를 이용하여 get/set 멤버함수가 구현되어 있다. 문제는 사용자가 일반 클래스로 알고 인스턴스를 만들어 다른 ID를 부여하지만 두 객체의 ID는 모두 같아진다. 모노스테이트의 장단점 장점 - 상속받기 쉬워 다형성을 활용할 수 있다. - 생존 주기가 적절히 잘 정의된다. - 시스템에서 사용 중인 이미 존재하는 객체를 수정하여 이용할 수 있다. 단점 - 코드 깊숙이 손을 댄다. (일반 객체를 모노스테이트로 변..
# 전역객체로서의 싱글턴 손쉽게 개발자간의 약속을 하여 주석 등으로 단 한번만 인스턴스 하도록 하는 것이다. struct Database{ /** * \brief 이 객체를 두 개 이상 인스턴스화 하지 마시오. */ Database(){} }; 하지만 의도하지 않은 은밀한 방식으로 생성자가 호출되어 버릴 수도 있다. 가장 간단한 아이디어는 static 전역 객체를 두는것이다. static Database database{}; static 전역객체의 문제점은 각각의 컴파일 단위 바이너리들에서 초기화 순서가 정의되어 있지 않다는 것이다. 전역객체가 여러 개 사용된다면 어느 한 모듈에서 전역 객체를 참조할 때 그 전역 객체가 참조하는 또 다른 전역 객체가 아직 초기화된 상태가 아닐 수 있다. 그리고 사용자가 ..