디자인 패턴 : 프로토 타입 모드

사용 시나리오 : 당신은 기존 개체를 기반으로 객체를 생성, 클래스를 기반으로 개체를 만들 수없는 경우

당신은 상황의 클래스를 기반으로 개체를 만들 수 없습니다 :

  • 당신은 매우 복잡한 과정을 만들 수있는 다양한 객체를 생성 할 필요에 따라, 클래스 객체를 생성 할 때
  • 이 클래스의 객체를 생성하기가 어렵다

예를 들면 :

일류 상품 
{ 
공개 : 
	가상 제품 *의 createClone () = 0; 
	가상 공간 사용 () = 0; 
};
클래스 애플 : 공공 제품 
{ 
	INT X; 
공공 : 
	제품 *의 createClone () 
	{ 
		새로운 애플 (*이)을 반환; 
	} 
	
	애플 INT (X = 0) 
	{ 
		this-> X = X; 
	} 
	
	애플 (CONST 애플 & 기타) 
	{ 
		X = other.x; 
	} 
	
	공극 사용 () 
	{ 
		COUT << "X ="<< X << ENDL; 
	} 
};
INT 주 () 
{ 
	제품 *의 P1 = 새로운 애플 (10); 
	제품 * P2 = P1-> createClone (); 
	
	P1-> 사용 (); 
	P2-> 사용 (); 
	
	0을 반환; 
}

  

추천

출처www.cnblogs.com/chusiyong/p/11433120.html