추상 팩토리는 이전 패턴 일지에 있었던 팩토리 관련 패턴 참고 자료에 나와있는 내용과 예시가 가장 이해하기 쉽고 적절한 것 같아서 그대로 여기에 적는 것 보다는 해당 자료를 참고하는게 좋을 것 같다.
glikmakesworld.tistory.com/5
앞서 알아봤던 2개의 패턴보다는 좀 더 세부적으로, 조립식 부품을 끼워 맞추듯 설계를 한다.
(여러가지 인스턴스가 함께 쓰이는 경우에 사용하면, 추후에 유지보수나 새로운 기능 개발 및 수정에도 유용하다)
참고자료에 나온 예시 이외에 또 다른 확실한 예시가 있다면, 우리가 현실에서 흔히 볼 수 있는 컴퓨터나 자동차, 비행기가 있을 것이다.
컴퓨터의 부품들 (CPU, 그래픽카드, 파워 등)
자동차의 부품들 (엔진, 배터리, 타이어 등)
비행기의 부품들 (제트 엔진, 기체 구조 관련, 랜딩기어 등)
참고자료의 예시에서 보스가 완성되기 위해 몬스터와 무기가 만들어지듯이, 무언가가 만들어지기 위해 필요한 요소들이 함께 결합하는 것이다.
그 요소에서도 몬스터가 고블린과 오크, 일반 고블린과 붉은 고블린과 같이 종류와 세부 종류가 또 달라지고 나눠질 수 있는 것이다.
컴퓨터를 예시로 들면, CPU 에서도 인텔과 AMD 제품뿐만 아니라 여러 회사별로 수많은 제품들이 있으니까.
위의 내용을 토대로 추상 팩토리를 참고하여 실제로 패턴을 적용해본다면 그리 이해하는데 어렵지 않을 것이다.
(물론 실제 프로젝트에 적용하고, 세부내용을 구현하기 시작한다면 활용하는데 좀 시간이 걸릴 수도 있다)
다 읽어봤다면 추상 팩토리 내용 바로 밑에 [추상 팩토리 VS 팩토라 메서드 패턴] 에 대한 내용이 있다.
2가지 패턴 중에서 뭐가 더 좋다고 하기보다는 상황에 따라 다르다는 내용인데, 자신이 구현하려는 기능과 패턴의 각 장단점들 그리고 추후에 수정 작업이 있을 경우를 함께 생각하여 가장 유리한 패턴으로 구현하는 것이 좋을 것 같다.
정답이 꼭 있는건 아니다, 각 패턴의 장점에 따라 단순히 응용해서 적용해도 될 것이고, 자신만의 새로운 패턴을 만들어서 효율적인 코드를 완성할 수도 있고 간단한 작업이라면 작업 시간을 절약하기 위해서 간략히 구현할 수도 있는거다.
앞으로의 패턴 일지에서는 가능하면 참고자료들을 활용하면서, 참고자료의 내용이 좀 더 이해하기 쉽고 예시가 좋은 경우에는 이렇게 내용들 위주로만 좀 더 정리하는 형태로 작성할 것 같다.
(참고자료에 나와있는 예시까지도 똑같이 다시 한번 정리하는 일은 불필요할 것 같다..)
'C# > 디자인 패턴' 카테고리의 다른 글
[C# / Unity] 디자인 패턴 - 싱글톤 패턴 (0) | 2021.04.25 |
---|---|
[C# / Unity] 디자인 패턴 - 팩토리 메서드 (0) | 2021.04.11 |
[C# / Unity] 디자인 패턴 - 심플 팩토리 (0) | 2021.04.04 |
[C# / Unity] 디자인 패턴이란? (0) | 2021.03.28 |
댓글