여러가지 디자인패턴 중에도 이 패턴을 다시 공부하고 싶었던 것은 게임엔진에서 핵심적으로 사용되는 디자인패턴이기 때문에 이전에 다소 부정확하게 이해하던 부분을 좀 더 다듬고자 학습을 하게 되었습니다.
https://www.youtube.com/watch?v=_3fS1KCCP1U&t=326s
위 영상으로 공부하고 하였고
https://github.com/josunyjostar/design-pattern-practice
해당 코드는 깃에 작성해놓았다
제가 이해한 핵심은
1. 집합체와 단일체가 공통 상속하는 부모 컴포넌트가 있고 '집합체가 단일체를 가지고 있을 수 있게 설계한다'
2. 구체화된 CLASS의 인스턴스를 모두 추상화된 부모 클래스의 배열로 모아서 실행시키고
3. 실제 실행되는 시점에서 상속관계나 다형성을 적절히 활용한다.
일단 이렇게 해석했습니다.. (틀릴수도 잇음)
코드상에서 중요하다고 느낀 부분은
1. 상속 관계
2. private units: Array = [];
add(unit: Unit): void {
this.units.push(unit);
}
어떻게 보면 그냥 객체지향의 다형성을 이용한다는 것이지만 차이점이 있다면 집합체와 단일체의 관계 설정이라고 생각되었습니다.