※ 읽기 전에 한번 숙지하면 좋은 내용
math-development-geometry.tistory.com/40
C# - 추상 클래스, 가상 클래스 - abstract, virtual 사용법
지난 포스팅 인터페이스에서 잠시 언급된 추상과 가상에 대한 이야기를 하도록 하겠습니다. 추상과 가상을 먼저 이야기 했으면 좋았겠지만, 제 포스팅은 그냥 의식의 흐름으로 적는 포스팅이기
math-development-geometry.tistory.com
유니티 디자인패턴 - 팩토리(심플팩토리, 팩토리 메소드, 추상팩토리) (Unity Design Patterns - Factory)
흔한 프로그래밍 언어서 새로운 인스턴스를 만들 때 new를 사용한다. 만약 내 게임의 스테이지1에서 그린고블린을 만든다면 아래와 같이 만들것이다. GreenGoblin greenGoblin = new GreenG
glikmakesworld.tistory.com
추상/가상 키워드에 대해서 어느 정도 알고 사용할 수 있다면 도움이 될만한 패턴에 대해서 먼저 다뤄보고자 한다.
한 던전 RPG 게임을 만든다고 가정해보자.
플레이어가 던전을 돌고 클리어한다면 상자를 보상으로 주는데, 이 상자를 구현해야 하는 상황이다.
그런데 무기 장비가 들어있는 상자가 나올 수도 있고, 골드나 보석과 같은 게임의 재화가 들어있는 상자가 나올 수도 있게 해야 한다.
(여러 종류의 상자들이 나온다)
단순히 2개 ~ 4개 정도의 상자 종류에서는 거의 기능적 범위 차이가 크지 않는 경우에 사용할 수 있고 우리가 흔히 사용했던 방식이기도 한 패턴이다.
단순히 if 문으로 구분해서 구현하는거다.
예시)
기본적으로 위의 예시 코드를 살펴보면 상자와 관련된 클래스 계층구조는 다음과 같을 것이다.
상자의 종류가 여기서 끝이라면 상관없을 것 같지만, 계속해서 종류가 더 늘어나고 구현할 내용이 많아진다면 유지 보수에 있어서 굉장히 곤란해진다.
그래서 필요한 것이 조금 더 발전된 형태의 팩토리 메소드 패턴과 추상 팩토리가 있는데, 다음 일지에서 다뤄보도록 하겠다.
(여러 자료를 찾아보면 알 수 있지만 심플 팩토리를 포함한 팩토리 메소드, 추상 팩토리, 싱글톤 등의 패턴들은 모두 생성패턴에 해당된다)
※ 예시에서는 if문을 사용했지만, 패턴은 어디까지나 다르게 구현할 수 있으므로 switch문을 사용해도 상관없다.
'C# > 디자인 패턴' 카테고리의 다른 글
[C# / Unity] 디자인 패턴 - 싱글톤 패턴 (0) | 2021.04.25 |
---|---|
[C# / Unity] 디자인 패턴 - 추상 팩토리 (0) | 2021.04.18 |
[C# / Unity] 디자인 패턴 - 팩토리 메서드 (0) | 2021.04.11 |
[C# / Unity] 디자인 패턴이란? (0) | 2021.03.28 |
댓글