일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
컴포지트 빌더는 객체 하나를 생성하는데 복수의 빌더가 사용되는 경우 사용된다. BuilderBase에 여러개의 builder를 두어 객체가 생성되게 한다. 객체가 생성될때는 아래와 같이 생성된다. Person p = Person::create() .lives().at("123 London Road").with_postcode("SW1 1GB").in("London") .works().at("PragmaSoft").as_a("Consultant").earning(10e6); * 저자는 참조를 사용하였지만 코드가 에러를 계속 에러를 뱉어낸다. 아마 PersonBuilder에서 생성된 객체가 PersonBuilderBase로 참조될 때 유지가 안되는 것 같다. 참조를 포인터로 변경하여 에러를 고쳤다. - 전체..
C++ 에서도 HTML에 호환되는 DSL을 효과적으로 만들 수 있다. DSL (Domain Specific Languege) : 도메인 특화 언어 관련 특정 분야에 최적화된 프로그래밍 언어. (*Groovy, Kotlin에서 생성 지원) 해당 분야 또는 도메인의 개념과 규칙을 사용 아래와 같은 태그를 생성한다. struct Tag{ string name; string text; vector children; vector attribute; friend ostream& operator
빌더 패턴은 생성이 까다로운 객체를 쉽게 처리하기 위한 패턴이다. 즉, 생성자 호출 코드 단 한 줄로 생성할 수 없는 객체를 다룬다. - 시나리오 웹 페이지를 그리기위한 컴포넌트들을 생성해야 한다고 할때 각각의 HtmlElement를 생성하는 과정을 간소화 한다. 객체 지향 스타일을 채용하여 HtmlElement 클래스를 정의하여 각 html 태그에 대한 정보를 저장한다. struct HtmlElement{ string name; string text; vector elements; string str(int indent = 0) const{ // 컨텐츠를 양식에 맞추어 출력 } HtmlElement(){} HtmlElement(const string& name, const string& text) : ..