[디자인 패턴] 프로토타입 패턴

프로토타입 패턴(Prototype Pattern) 객체를 생성하는 방법은 new 키워드를 사용한 방법이 일반적입니다. C++의 스마트 포인터도 내부적으로 new 키워드를 사용합니다. 객체를 생성하는 또 한가지 방법은 객체를 복사(Copy)하는 방법입니다. 프로토타입 패턴은 객체를 복사하는 방법을 사용하여 객체를 생성합니다. 프로토타입 패턴의 구조 프로토타입 패턴은 신규 객체를 생성하지 않고, 기존에 만들어진 객체를 복제합니다. C++에서 객체를 복사하는 방법은 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)가 있습니다. 프로토타입 패턴은 특별한 구조를 갖는 것이 아니라, 복사를 활용합니다. 프로토타입 패턴을 위한 예제 사용자가 지정한 메세지를 객체가 저장하고 있다가 필요할때 반환하는 클래스를 작성합니다....

November 29, 2020 · 3 min · Pacientes

[디자인 패턴] 빌더 패턴

빌더 패턴(Builder Pattern) 클래스의 인스턴스인 객체는 단일 객체와 복합 객체로 구분합니다. 단일 객체는 하나의 클래스로 생성된 객체를 의미합니다. 팩토리, 팩토리 메서드, 추상 팩토리 모두 단일 객체를 생성하는 패턴입니다. 복합 객체는 하나의 객체가 다른 객체를 포함하는 관계(has-a)를 의미합니다. 클래스를 확장하는 방법에는 상속하는 관계(is-a)도 있습니다. 하지만 상속은 강력한 상-하 결합 관계와 불필요한 정보도 포함되는 단점이 있습니다. 현대적인 객체지향 개발 방법은 상속을 최소화하고 복합 객체로 구성합니다. (참고) 인터페이스 클래스를 상속하여 구현하는 것은 상-하 상속 관계가 아닌 선언과 구현으로 구분합니다....

November 28, 2020 · 5 min · Pacientes

[디자인 패턴] 추상 팩토리 패턴

추상 팩토리 패턴(Abstract Factory Pattern) 추상 팩토리는 팩토리 메서드 패턴을 확장한 패턴입니다. 팩토리 메서드 패턴은 객체 생성을 담당할 클래스를 인터페이스로 선언하여, 선언과 구현을 분리한 패턴입니다. 추상 팩토리 패턴의 구조 추상 팩토리는 팩토리 메서드와 비슷한 성격을 갖고 있습니다. 한 가지 다른 점은 추상 팩토리는 추상화된 객체 생성을 그룹으로 관리합니다. 추상 팩토리는 팩토리 메서드 패턴을 잘 이해하고 있다면, 쉽게 이해할 수 있습니다. 추상 팩토리 패턴: 인터페이스 클래스 팩토리 메서드와 동일하게 객체 생성을 담당할 인터페이스 클래스를 선언합니다....

November 28, 2020 · 3 min · Pacientes

[디자인 패턴] 팩토리 메서드 패턴

팩토리 메서드 패턴(Factory Method Pattern) 팩토리 메서드 패턴은 두 가지 패턴(팩토리 패턴, 템플릿 메서드 패턴)이 결합한 팩토리 확장 패턴입니다. 추상화(Abstract)는 팩토리 메서드 패턴을 구현하는데 중요한 개념입니다. 객체를 생성하는 팩토리와 객체의 대상이 되는 클래스를 각각 추상화합니다. 팩토리 메서드 패턴의 구조 인터페이스 클래스(Interface Class)는 클래스의 정의만 존재하는 클래스입니다. 클래스의 실제 구현은 인터페이스 클래스를 상속하는 세부 클래스에서 구현합니다. 팩토리 메서드는 팩토리와 생성 클래스를 인터페이스로 구현합니다. 팩토리 메서드 패턴: 인터페이스 클래스 팩토리 메서드 패턴의 인터페이스 클래스를 선언합니다....

November 27, 2020 · 3 min · Pacientes

[디자인 패턴] 싱글톤 패턴

싱글톤 패턴(Singleton Pattern) 싱글톤 패턴은 매우 인기있는 디자인 패턴 중 하나입니다. 싱글톤은 자원의 공유를 위해 오직 하나만 존재하는 객체를 의미합니다. 즉 객체의 중복 생성을 방지함과 동시에 전역으로 공유되어 어디서든 접근할 수 있습니다. 객체의 중복 생성 방지 싱글톤 패턴은 프로그램 내에서 오직 하나의 객체만 존재해야 합니다. 그렇다면 C++에서는 언제 객체가 생성될까요? 생성자를 이용하여 생성된 객체 객체를 복제하며 생성되는 객체 객체를 대입하며 생성되는 객체 C++에서는 클래스의 메서드를 정의할 때, 사용자가 정의하지 않으면 자동으로 생성하는 메서드가 존재합니다....

November 23, 2020 · 4 min · Pacientes