Design Pattern

컴포지트패턴, 복합패턴 (Composite Pattern) [첫번째]

디자인 패턴 강의를 오랜만에 다시 하는군요. 업무가 바쁜데다가 운동도 하랴 공부도 하랴 요즘은 몸이 2 개였으면 좋겠네요. ^^ 오늘은 구조개선을 위한 디자인패턴 중에서 Composite 패턴에 대해 알아보겠습니다. 왜 Bridge 패턴은 건너뛰고 Composite 부터 하냐구요 ?...

어댑터 패턴 (Adapter Pattern)

이번 시간부터 드디어 구조 개선을 위한 패턴들을 배워보도록 하겠습니다. 첫번째로 Adapter 패턴이네요. 2. 구조 개선을 위한 디자인 패턴     ㅇ Adapter 패턴 ㅇ Bridge 패턴     ㅇ Composite 패턴     ㅇ Decorator...

프로토타입 패턴 (Prototype Pattern)

이번 시간에는 prototype 패턴에 대해 알아보겠습니다. 객체 생성을 위한 디자인 패턴 중에서는 마지막 패턴이네요. 1. 객체 생성을 위한 디자인 패턴 Singleton(싱글톤) 패턴 Abstract Factory 패턴 Builder 패턴 Factory Method 패턴 Prototype 패턴 우리는 앞에서 객체를...

팩토리 메소드 패턴 (Factory Method Pattern)

1. 객체 생성을 위한 디자인 패턴 Singleton(싱글톤) 패턴 Abstract Factory 패턴 Builder 패턴 Factory Method 패턴 Prototype 패턴 이번 시간에 살펴볼 패턴은 객체 생성을 위한 디자인 패턴 중 Factory Method 패턴입니다. Factory Method 패턴을 한마디로 정의하면...

빌더 패턴 (Builder Pattern) [첫번째]

빌더 패턴 (Builder Pattern) [첫번째]

1. 객체 생성을 위한 디자인 패턴 Singleton(싱글톤) 패턴 Abstract Factory 패턴 Builder 패턴 Factory Method 패턴 Prototype 패턴 이번 시간부터는 객체 생성을 위한 디자인 패턴 중 Builder 패턴에 대해 알아보겠습니다. 일단 Builder 패턴을 정의해보면 “Builder...

추상팩토리 패턴 (Abstract Factory Pattern) [세번째]

추상팩토리 패턴 (Abstract Factory Pattern) [세번째]

자, 이제 그럼 마지막으로 이번에는 Abstract Factory 패턴을 이용하여 문제를 해결해보도록 하죠. 객체 생성 전담 클래스를 이용하는 방법 Abstract Factory 패턴을 이용하는 방법 “객체 생성 전담 클래스를 이용하는 방법”에서 두 가지 단점에 대해 언급했는데, 첫번째가...

추상팩토리 패턴 (Abstract Factory Pattern) [두번째]

추상팩토리 패턴 (Abstract Factory Pattern) [두번째]

이번 시간에는 이전 시간에 살펴보았던 코드의 문제점을 개선하는 두가지 방식 중 첫번째 방법에 대해 살펴보겠습니다. 객체 생성 전담 클래스를 이용하는 방법 Abstract Factory 패턴을 이용하는 방법 이전 시간에 살펴보았던 코드의 가장 큰 문제점은 변경될 가능성이 많은...

추상팩토리 패턴 (Abstract Factory Pattern) [첫번째]

추상팩토리 패턴 (Abstract Factory Pattern) [첫번째]

1. 객체 생성을 위한 디자인 패턴 Singleton(싱글톤) 패턴 Abstract Factory 패턴 Builder 패턴 Factory Method 패턴 Prototype 패턴 이제 이번 시간부터는 객체 생성을 위한 디자인 패턴 중에서 Abstract Factory 패턴에 대해 알아보겠습니다. 일단 개념부터 알아보도록...

싱글톤 패턴 (Singleton Pattern) [세번째]

싱글톤 패턴 (Singleton Pattern) [세번째]

앞서 살펴보았던 코드의 문제점을 찾으셨나요 ? 일단 저는 그 코드의 두가지가 마음에 들지 않습니다. 첫째, 객체 하나 생성하는데 복잡하게 mutex lock 까지 사용해야하나 ? 하는 의구심이 듭니다. 둘째, get_instance 함수 내에서 생성한 객체가 new 를...

싱글톤 패턴 (Singleton Pattern) [두번째]

싱글톤 패턴 (Singleton Pattern) [두번째]

Singleton(싱글톤) 패턴 첫번째 강의에서 구현했던 Singleton class 는 경쟁이 심한 멀티스레드 환경에서 약점이 있다고 말씀드렸습니다. 앞서 살펴보았던 puppy_class 를 다시 한번 볼까요 ? class puppy_class { private: static puppy_class *instance;  /* 객체를 가리키는 static 포인터...