디자인 패턴 정리 (GOF - Prototype Pattern)

Youngmin Choi·2021년 11월 30일
0

Design-Pattern

목록 보기
4/9
post-thumbnail

2. Prototype Pattern (원형 패턴)

  • 용도 :
    미리 만들어진 객체를 복사해서 객체를 생성하는 방식이다. 객체를 많이 만들어야 할 경우, 객체 생성에 드는 코딩 분량을 현저히 줄일 수 있다! 즉, 클래스로부터 객체를 생성하기 어려운 경우에 사용하면 좋다!


    요약 :
    쉽게 말해 새로운 오브젝트를 지속적으로 new로 생성하는건 부담스러운 일! 때문에 싼 비용인 본래의 오브젝트의 복사본을 만들어 내어(서로 다른 인스턴스), 각 객체에 따라 데이터 수정을 해주는 방식으로 생성해 준다!

  • 사용 방법 :
    모형(Prototype) 인스턴스를 등록해 놓고, 등록된 인스턴스를 복사(Clone())해서 인스턴스를 생성한다!

    ex1)
    구조 :
  1. interface IUnit
  2. class SCV : IUnit
  3. class Probe : IUnit

  • SCV 최초 생성은 new를 사용하여 생성한다.
    두 번째 SCV부터는 새로 생성하지 않고 기존(new로 생성한) SCV로부터 복사본을 만든 후 내용만 수정해준다!
    ★중요 : 원본인 scv와 복사본인 scvClone은 별개의 객체


    ex2)
    구조 :
  1. class SCV
  2. class UnitManager
  • 게임 시작시 위 SCV.cs 스크립트가 붙은 오브젝트의 색상이 랜덤하게 설정된다.
  • SCV.cs 스크립트가 붙은 오브젝트가 어떤 물체와 충돌하면 파괴된다.
  • unit프리팹을(SCV 같은) 드래그 앤 드롭하여 UnityManager.cs에 연결한다.
  • 버튼 CreateUnit() 함수를 이벤트로 연결하여 버튼을 누를시 Unit이 생성되게 한다.
profile
Always, Continually, In all circumstance

0개의 댓글