본문 바로가기

게임개발 수업

팩토리 패턴

팩토리 패턴이란 oop 디자인 패턴 중 하나를 말한다.

 

디자인 패턴이란 무엇인가?

 

 - 디자인 패턴이란 oop의 4가지 규칙(추상화, 상속화, 캡슐화, 다형성)과

5가지 원칙

 단일 책임 원칙 (SRP : Single Responsibility Principle)
 개방 폐쇄 원칙 (OCP : Open/Closed Principle)
 리스코프 치환 원칙 (LSP : Liskov’s Substitution Principle)
 인터페이스 분리 원칙 (ISP : Interface Segregation Principle)
 의존관계 역전 원칙 (DIP : Dependency Inversion Principle)

 

을 잘지키기 위해 만들어진 일종의 공식 같은 것이다.

 

디자인 패턴을 꼭 사용해야 하는가?

 

- 그렇지 않다. 디자인 패턴은 oop를 잘 쓰기 위해 만들어진 공식이다.oop를 쓰는 이유는 코드 재사용성을 높이고, 유지보수를 쉽게 하기 위함이다.

 

oop는 목적을 위한 수단이다. 그리고 그 수단을 조금 더 잘 사용하기 위한 것이 디자인 패턴이다.

 

예를 들어 백분율을 구하는 공식은 

      (x)                      100

--------------    x                      이다.

(전체 갯수)

 

공식은 특정 값 x일때 백분율을 쉽게 구하기 위해 만들어진 것이다.

 

하지만 전체 갯수가 100이고, x가 40이라면 우리는 공식을 사용하지 않아도 단번에 40% 라는 것을 알 수 있다.

 

이렇듯 간단하거나, 잘 변하지 않는 것이라면 굳이 어렵게 디자인 패턴이라는 공식을 사용할 이유가 없다.

 

실제로도 간단히 printf()를 찍는 일을 하는 프로그램이 있다고 한다면,

디자인 패턴을 사용하지 않으면 printf() 한줄이면 끝이다.

그런데 여기에 여러 디자인 패턴을 적용하면 printf() 한줄이면 될 것이 몇백줄의 코드가 필요해진다.

 

사실 이렇게 어떤 프로그램에 디자인 패턴 적용이 유용한가 아닌가를 구분하는 것이 가장 어렵다.

 

팩토리 패턴이란 무엇인가?

 

- 팩토리 패턴은 객체 생성에 해당하는 부분에서 인터페이스(추상 클래스)와 구상클래스(인스턴스 클래스) 분리하는 것을 말한다.

 

이렇게 해서 얻을 수 있는 장점은 인터페이스가 구상클래스에 의존적이지 않게 되는 것이다.

객체 생성 부분을 커다랗게 캡슐화 함으로써 클래스에서 코드 의존성을 낮추는 것이 목적이다.

 

팩토리 패턴을 구현하는 것은 추상 팩토리 패턴, 팩토리 메소드 패턴 등등 엄청 복잡한 게 많지만,

나는 목적에 맞게만 설계된다면 그 역할을 한다고 본다.

 

 

'게임개발 수업' 카테고리의 다른 글

함수 포인터  (0) 2022.12.01
vector push_back 과 emplace_back의 차이  (0) 2022.12.01
객체 복사  (0) 2022.11.29
가상함수  (0) 2022.11.25
클래스 생성자와 소멸자  (0) 2022.11.24