본문 바로가기
Programming/Tips(C++,C#)

디자인 패턴 - Prototype.

by 곰네Zip 2011. 6. 25.
원형이 되는 객체를 복사하여 객체를 생성함. 프로토타입은 생성되는 객체의 실제 타입을 알 필요가 없음. 주로, 객체를 생성하는 시간이 오래 걸리거나 할 때, 유용하게 사용할 수 있다. 

객체가 이미 하나 생성되었다. (A), 그런데 필요에 따라서 객체를 하나 더 생성하여야 하게 생겼다. (B), 근데 A와 B의 차이가 없거나 A.count = 3, B.Count=4인둥.. 별반 차이가 없다. 그럴 경우, 비싼 비용을 들여 객체를 생성할 필요가 없이, 이미 만들어진 A를 복사하는 것이, 이 프로토타입의 개념인듯. 

1. 런타임에 새로운 객체를 추가하거나 삭제할 수 있다.
2. 객체의 생성시간을 줄여준다. (새로이 만드는게 아니라 자기 자신을 복제해서 사용하므로)
3. 추상 팩토리의 경우 구현 상속을 통해서 다른 클래스를 정의하도록 하고 있으나, 프로토타입의 경우 상태를 이용하여 상속 문제를 해결한다. 

그러나 프로토타입의 경우 복사를 어떻게 할 것인지 매우 주의깊게 고려해야 한다. 즉, 자신을 복사하는 clone()메소드 구현이 쉽지 않다는 것이다.

이 밑의 참고 글에 가면 매우 쉽게 설명이 되어있다.

 참고 글 : http://blog.naver.com/gamediz/20041448546

반응형

댓글