새소식

C#/디자인 패턴

팩토리 메소드 패턴 - 1

  • -

[참고 영상]

코딩으로 학습하는 GoF의 디자인 패턴 강의 - 대시보드 | 인프런 (inflearn.com)

 

코딩으로 학습하는 GoF의 디자인 패턴 강의 - 인프런

디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할

www.inflearn.com


[학습 목표]

 

팩토리 메소드 패턴의 정의에 대해서 배우고 이를 실제 코드를 사용해서 추후에 프로젝트에서 응용을 할 수 있게 연습을 해보자


[팩토리 메소드 패턴이란 무엇인가?]

팩토리 메소드 패턴이란 부모 클래스에서 객체들을 생성할 수 있는 인터페이스를 제공하지만, 자식 클래스들이 생성될 객체들의 유형을 변경할 수 있도록 하는 생성 패턴이다.

 

이렇게 말을 하면 이해는 되지만 실제로 어떻게 만드는지 이해가 안 될 수가 있으니 아래에서 다이어그램을 이용해 설명을 해보자.


[구현 목표]

이용한 사이트: draw.io

 

고객이 Ship 공장에 2개의 배를 주문할려고 한다. 하나는 흰배 이고 하나는 검은배일때 고객은 Ship 공장에 주문을 하고 Ship 공장은 가지고 있는 정보를 이용해서 Ship를 2개를 만들어준다.

 

얼핏보면 문제가 되는 부분이 없다. 하지만 우리들은 "확장에는 용이하고 변경에는 닫혀있어야 한다" 라는 개방 폐쇄 원칙에 대해서 객체 지향을 배우면서 알게 되었다. 그렇기에 만일 위와 같은 코드가 실현된다면

 

Client가 Ship Factory에 새로운 Ship인 Ship BlueShip을 주문을 하면 ShipFactory 내부에서는 조건문을 추가로 열어서 BlueShip일 경우 Ship에 name으로 이름은 Blue Ship, 색상은 Blue, Logo 까지 3가지를 모두 정보를 줘야 한다.

 

즉, 고객이 새로운 주문을 할 때마다 ShipFactory가 변경이 되므로 이는 객체지향 원칙 중 개방 폐쇄 원칙을 어기게 된다.


[목적]

 

즉, 우리들이 팩토리 메소드 패턴을 만드는 이유는 객체 지향 원칙 중 개발 폐쇄 원칙을 지키는 코드를 만들기 위해서이다. 이제 다음 포스팅에서 C#으로 만드는 방법에 대해서 알아보자.

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.