[참조 : http://hiddentrap.tistory.com/95 ]


1. 프로토타입 패턴:

   클래스로부터 인스턴스를 만들지 않고 인스턴스를 복사해서 새로운 인스턴스를 만드는 복제 패턴

 

image 

2. 클래스에서 인스턴스를 만드는 대신 Prototype패턴을 사용하는 이유


  • 종류가 너무 많아서 클래스로 정리할 수 없는 경우 
    비슷하지만 그 유형이 너무 많은 모형의 경우에 모두 각각의 클래스로 만들면 클래스의 수가 너무 많아지기 때문에 소스 프로그램을 관리하기 힘들다.
  • 클래스로부터 인스턴스 생성이 어려운 경우 
    마우스를 사용해서 도형 에디터와 같은 어플리케이션의 경우처럼 사용자가 조작을 해서 만든 도형을 나타내는 인스턴스와 같은 것을 만들고 싶다면 클래스를 사용하는 것이 아니라 인스턴스를 복사해서 만드는 방법이 간단하다.
  • framework와 생성하는 인스턴스를 분리하고 싶은 경우 
    클래스 이름의 속박으로부터 framework을 분리할 수 있다. 소스 내부에 이용할 클래스의 이름이 쓰여있으면 그 클래스와 분리해서 재이용할 수 없게 된다. 소스 파일(.java)이 없어도 재사용할 수 있게 하는 것이 중요하다.
===============================================================================================================

저 위에 코드를 UML을 빌리자면, create()함수에는 interface인 prototype 형으로 인자를 받아 clone을 해주어
객체를 생성해 줄것이다.(new 로 각각 조건에 맞는 객체를 생성해주려고 구현하면 구현해야 하는 종류가 많아 질수록
switch문으로 조건 달아줄 코드가 길어지게 된다.)
 
Posted by dlucky