프로그래밍 일반/디자인 패턴 22

팩토리 패턴(Factory pattern)

객체 생성을 대리하여 처리하는 것을 통칭하는 관용어로 팩토리라 부릅니다. 이것을 팩토리 패턴으로 부르는 사람도 있지만 엄밀히는 아닙니다. 팩터리는 두 가지중 하나입니다. 객체를 어떻게 생성하는지 알고 있는 "클래스" 호출했을 때 객체를 생성하는 "함수" 팩터리 메서드 생성할 타입의 멤버 함수로 객체를 생성하여 리턴합니다. 이 메서드는 생성자를 대신합니다. static 함수로 직교좌표 Point와 극좌표 Point를 생성하는 코드입니다. class Point { protected: Point(const float x, const float y) : x{x}, y{y} {} public: float x, y; static Point NewCartesian(float x, float y) { return{ x..

빌더 패턴(Builder Pattern)

빌더 패턴은 여러 복잡한 요소들의 조합이 필요한 객체를 생성해야 하거나 여러 개의 다양한 객체 집합을 생성해야 할 때 객체 생성만을 전담하는 컴포넌트를 정의하여 객체 생성을 간편하게 하는 것입니다. 이해가 되지 않으면 예제 코드를 보면 쉽게 이해가 되겠죠. House house = HouseBuilder::.buildWalls(). .buildDoors(). .buildWindows(). .buildRoof() .buildGarage() .getReulst(); Email mail = Email::make().from("me@mail.com") .to("you@mail.com") .subject("C++ builders") .body("I like this API, don't you?"); 컴포지트 빌더..