Prototype

디자인패턴

목록 보기
5/12

: 클래스에서 인스턴스를 만드는(new) 대신 인스턴스를 복사해서 새 인스턴스를 만드는 것. 즉 복사본 반환
: 원본(원형)을 만들어놓고 그걸 계속 복사.


✅ 왜 필요하지?

  • 종류가 너무 많아 클래스로 정의할 수 없는 경우 (ex. 배열)
  • 객체가 복잡할 수도 있고, 초기화하는게 오래 걸릴 수도 있고 새로 만드는게 부담스러울 때. 즉, 인스턴스 생성이 어려운 경우
  • 프레임워크와 생성하는 인스턴스를 분리하고 싶을 때(Spring)

✅ Java의 clone()

  • Object 클래스에 정의되어 있음
  • 얕은 복사(필드 대 필드 복사)
  • 복사 대상이 되는 클래스는 Cloneable 인터페이스 구현해야 함
    해당 인터페이스는 메서드가 하나도 선언되어 X. 단순히 clone()로 복제를 허용한다는 표시. 즉, 마커 인터페이스 역할
profile
정리하는게 공부가 될 지 모르겠지만, 정리를 하면 마음만큼은 편해

0개의 댓글