hyuko

생성디자인 패턴 본문

CS/디자인패턴

생성디자인 패턴

hyuko12 2023. 4. 28. 22:31
728x90
반응형

팩토리 메서드 패턴

팩토리 메서드는 부모 클래스에서 객체들을 생성할 수 있는 인터페이스를 제공하지만,

자식 클래스들이 생성될 객체들의 유형을 변경할 수 있도록 해주는 생성 패턴이다.

 

예를들어 , 기본적으로 이러한 팩토리 메서드 패턴을 모른다고 해보자!!

 

택배관련 물류 어플리케이션이 있다고 했을 때 , 하나의 어플리케이션에서 트럭이라는 운송수단 클래스로

모든 과정들이 이어 붙여져 있다고 생각해봅시다.

 

이러한 상황에서 만약에 해외로 물류들을 보낸다거나 제주도등 섬으로 보낸다고 하였을 때 

선박이나 비행기등 여러가지의 운송수단들이 늘어날 수 있는 상황이 생기고 그럴 때 마다 클래스 정보들을 

이어 붙여야 하기 때문에 전체 코드가 바뀌게 됩니다.

 

이러한 문제점 들 때문에 팩토리 메서드 패턴을 이용해서 해결할 수 있는데

 

정의에서 말한 것 처럼 부모클래스 하나를 생성해서 메서드를 만들고 자식 클래스에서
이를 오버라이드하여 새로 재정의 해서 쓰는 방법이다.
본래는 new 연산자를 이용하여 전부 각각 생성을 해서 쓰던 패턴을
메서드의 호출로 대체를해서 쓰는 것이다.

 

Interface 로 운송수단 이라는 하나의 부모 인터페이스를
만들어주고 이 Interface에는 delivery라는 메서드 하나를 포함한다.
그리고 Truck 과 Ship 이라는 클래스가 이 인터페이스를
Implements 해서 각각 delivery 메서드를 
오버라이드 하여 쓰게 되면
객체가 각각 생성해서 쓰긴 해야하지만
하나의 부모안에서 똑같은 메소드 하나로 통일하여 
Ship 이아니라 비행기가 되더라도 유지보수가 용이해집니다.

 

※ 장점과 단점

1. 단일 책임 원칙, 코드를 더 쉽게 유지관리 가능하다.

2. 개방/ 폐쇄원칭 기존 코드를 훼손하지 않으면서 새로운 유형의 코드를 도입할 수 있다.

 

단점

1. 패턴을 구현하기 위해서 많은 자식 클래스들을 동원하여 코드가 복잡해질 수 있는 단점이 있습니다.

 

 

728x90
반응형

'CS > 디자인패턴' 카테고리의 다른 글

디자인 패턴에 대해서 ...  (0) 2023.04.25