[디자인 패턴] 프로토타입 패턴
프로토타입 패턴은 생성에 대한 패턴 중 하나다,
사실 이건 패턴이라 할 것도 없다.
그냥... 객체 복제용 인터페이스를 둬서, 언제든지 객체를 복제할 수 있게 하면 그게 프로토타입 패턴이다.
복제용 메서드엔 관례적으로 clone이라는 이름을 자주 쓴다.
그저 사용할 객체들의 인터페이스에 clone 메서드를 추가해서, 잘 구현하도록 해주면 된다.
그러면 실제 객체의 종류나, 해당 객체의 상태를 알 필요없이 잘 만들어졌고, 잘 조작된 객체의 복사본을 잘 갖다쓸수 있다.
뭐 굳이 예시도 필요없을 것 같긴 한데, 그러자니 영 허전해서 코드를 대강 붙인다.
그냥 사람 클래스인 JustPerson과 학생 클래스인 Student을 인터페이스 IPerson으로 묶고, 프로토타입을 적용해본다.
먼저 인터페이스. 간단하다.
구현체들은 저 clone 메서드에서 깊은 복사를 구현해주면 된다.
doSelfIntroduce는 clone만 덜렁 있으면 심심해서 구현해봤다.
구현이다.


사용이다.

doSome 메서드에선 프로토타입의 복사본을 갖다가, 다른 곳에 저장하든지, 수정해서 뭘 하든 다 할 수 있다 가정한다.
그렇다.
참조
헤드퍼스트 디자인 패턴
GoF의 디자인 패턴
https://boycoding.tistory.com/108