SlideShare a Scribd company logo
1 of 28
Download to read offline
팩토리 패턴
- 객체를 생성하기 위한 인터페이스를 정의.
- 어떤 클래스의 인스턴스를 만들지는
- 서브클래스에서 결정.
장점
비슷한 클래스의 서로 다른 생성자를 매번 호출하지 말자.
클래스 간의 의존성을 줄이자.
단점…?
다른 종류의 객체를 생성하려면 다른 공장을 만들어야한다.
메모리 해제 관리가 필요하다.
-> life cycle 이나 Object pool 사용 필요.
프로토타입 패턴
- 생성할 객체의 타입이 프로토타입인 인스턴스로부터 결정
- 인스턴스는 새 객체를 만들기 위해 자신을 복제
- 팩토리 패턴과는 반대로 팩토리를 상속받는걸 피할수 있다.
- 객체를 만들 때 비용이 있는 경우에 비용 절감.
- 초기화를 한 번 해줘야 한다.
builder 패턴
- 새로운 객채를 만들어서 반환하는 패턴 중 하나
- 생성자에 들어갈 변수가 부족하든, 충분하든, 모든 변수를 받은 후에 통합.
- 생성자에 들어갈 데이터 순서가 달라진다면?
- 생성자에 필요한 데이터가 부족하다면?
builder 패턴
Singleton
- 접근이 제어되기 때문에 전역 변수보다 좋다.
- 사용을 안하면 인스턴스를 생성하지 않음.
- 런타임 초기화
- 정적 멤버 변수는 자동 초기화되는 문제가 있음.
- 정적 변수 초기화 순서 보장 못함
Singleton
- simple
Singleton
- thread safe
피닉스 싱글턴
- 죽어있으면 살리는 싱글턴
피닉스 싱글턴
- atexit : 프로그램이 종료될때
- 지정 함수 동작
Singleton
- 복사 불가
modern
- 추가된 이동생성자 까지 제거

More Related Content

Similar to 190311 factory

Effective java
Effective javaEffective java
Effective javaHaeil Yi
 
Desing Pattern-2
Desing Pattern-2Desing Pattern-2
Desing Pattern-2Daniel Lim
 
디자인패턴 1~13
디자인패턴 1~13디자인패턴 1~13
디자인패턴 1~13Shin heemin
 
Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준HoJun Sung
 
Mec chapter 5,6
Mec chapter 5,6Mec chapter 5,6
Mec chapter 5,6문익 장
 
Design Pattern 3
Design Pattern 3Design Pattern 3
Design Pattern 3Daniel Lim
 
Effective c++ 챕터 2 정리
Effective c++ 챕터 2 정리Effective c++ 챕터 2 정리
Effective c++ 챕터 2 정리연우 김
 
HolubOnPatterns/chapter2_2
HolubOnPatterns/chapter2_2HolubOnPatterns/chapter2_2
HolubOnPatterns/chapter2_2SeungHyun Hwang
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3현찬 양
 
[Swift] Factory Method
[Swift] Factory Method[Swift] Factory Method
[Swift] Factory MethodBill Kim
 
게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴예림 임
 
Effective c++ 1~8장
Effective c++ 1~8장 Effective c++ 1~8장
Effective c++ 1~8장 Shin heemin
 
Effective c++ 정리 1~2
Effective c++ 정리 1~2Effective c++ 정리 1~2
Effective c++ 정리 1~2Injae Lee
 
Mec++ chapter3,4
Mec++ chapter3,4Mec++ chapter3,4
Mec++ chapter3,4문익 장
 
effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리Injae Lee
 
Builder, prototype, singleton pattern
Builder, prototype, singleton patternBuilder, prototype, singleton pattern
Builder, prototype, singleton patternYoonJong Choi
 
Effective c++chapter1 and2
Effective c++chapter1 and2Effective c++chapter1 and2
Effective c++chapter1 and2성연 김
 
Effective STL 1~4장 정리
Effective STL 1~4장 정리Effective STL 1~4장 정리
Effective STL 1~4장 정리Shin heemin
 

Similar to 190311 factory (20)

Effective java
Effective javaEffective java
Effective java
 
Desing Pattern-2
Desing Pattern-2Desing Pattern-2
Desing Pattern-2
 
디자인패턴 1~13
디자인패턴 1~13디자인패턴 1~13
디자인패턴 1~13
 
Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준
 
Mec chapter 5,6
Mec chapter 5,6Mec chapter 5,6
Mec chapter 5,6
 
Design Pattern 3
Design Pattern 3Design Pattern 3
Design Pattern 3
 
Effective c++ 챕터 2 정리
Effective c++ 챕터 2 정리Effective c++ 챕터 2 정리
Effective c++ 챕터 2 정리
 
HolubOnPatterns/chapter2_2
HolubOnPatterns/chapter2_2HolubOnPatterns/chapter2_2
HolubOnPatterns/chapter2_2
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3
 
MEC++ 5
MEC++ 5MEC++ 5
MEC++ 5
 
[Swift] Factory Method
[Swift] Factory Method[Swift] Factory Method
[Swift] Factory Method
 
게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Effective c++ 1~8장
Effective c++ 1~8장 Effective c++ 1~8장
Effective c++ 1~8장
 
Effective c++ 정리 1~2
Effective c++ 정리 1~2Effective c++ 정리 1~2
Effective c++ 정리 1~2
 
Mec++ chapter3,4
Mec++ chapter3,4Mec++ chapter3,4
Mec++ chapter3,4
 
effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리
 
Builder, prototype, singleton pattern
Builder, prototype, singleton patternBuilder, prototype, singleton pattern
Builder, prototype, singleton pattern
 
Effective c++chapter1 and2
Effective c++chapter1 and2Effective c++chapter1 and2
Effective c++chapter1 and2
 
Effective STL 1~4장 정리
Effective STL 1~4장 정리Effective STL 1~4장 정리
Effective STL 1~4장 정리
 

More from Hyeon-Woo Sa

190507 synchronization
190507 synchronization190507 synchronization
190507 synchronizationHyeon-Woo Sa
 
190121 unfitness get set
190121 unfitness get set190121 unfitness get set
190121 unfitness get setHyeon-Woo Sa
 
190409 parallel patterns library (ppl)
190409 parallel patterns library (ppl)190409 parallel patterns library (ppl)
190409 parallel patterns library (ppl)Hyeon-Woo Sa
 
Next 16 1학기_휴디프_게임_bump it now
Next 16 1학기_휴디프_게임_bump it nowNext 16 1학기_휴디프_게임_bump it now
Next 16 1학기_휴디프_게임_bump it nowHyeon-Woo Sa
 
NEXT INSTITUTE 실전프로젝트 Team Horde YaloYalo
NEXT INSTITUTE 실전프로젝트 Team Horde YaloYaloNEXT INSTITUTE 실전프로젝트 Team Horde YaloYalo
NEXT INSTITUTE 실전프로젝트 Team Horde YaloYaloHyeon-Woo Sa
 

More from Hyeon-Woo Sa (10)

190507 synchronization
190507 synchronization190507 synchronization
190507 synchronization
 
190325 synchro
190325 synchro190325 synchro
190325 synchro
 
190421 coroutine
190421 coroutine190421 coroutine
190421 coroutine
 
190701 c# gram
190701 c# gram190701 c# gram
190701 c# gram
 
190121 unfitness get set
190121 unfitness get set190121 unfitness get set
190121 unfitness get set
 
190821 delphi
190821 delphi190821 delphi
190821 delphi
 
190409 parallel patterns library (ppl)
190409 parallel patterns library (ppl)190409 parallel patterns library (ppl)
190409 parallel patterns library (ppl)
 
190909 ambient
190909 ambient190909 ambient
190909 ambient
 
Next 16 1학기_휴디프_게임_bump it now
Next 16 1학기_휴디프_게임_bump it nowNext 16 1학기_휴디프_게임_bump it now
Next 16 1학기_휴디프_게임_bump it now
 
NEXT INSTITUTE 실전프로젝트 Team Horde YaloYalo
NEXT INSTITUTE 실전프로젝트 Team Horde YaloYaloNEXT INSTITUTE 실전프로젝트 Team Horde YaloYalo
NEXT INSTITUTE 실전프로젝트 Team Horde YaloYalo
 

190311 factory