본문 바로가기

JAVA/GOF Design Pattern

GOF Factory method 패턴

SMALL

Factory method는 부모(Parent)클래스에서 객체들을 생성할 수 있는 인터페이스를 제공하지만, 자식(Child) 클래스들이 생성될 객체들의 유형을 변경할 수 있도록 하는 생성 패턴입니다.

Factory method는 부모(상위) 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며. 자식(하위) 클래스가 어떤 객체를 생성할지를 결정하도록 하는 패턴이기도 합니다. 부모(상위) 클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로도 사용합니다.

팩토리 메서드 패턴(Factory Method Pattern)은 객체 생성을 처리하는 디자인 패턴 중 하나입니다. 이 패턴은 객체를 생성하는 인터페이스를 정의하고, 이를 구현하는 클래스에서 실제 객체의 생성을 처리하는 방식으로 동작합니다.

즉, 팩토리 메서드 패턴은 객체를 생성하는 코드를 클라이언트 코드에서 분리하여 유지보수 및 확장성을 향상시키는 것을 목적으로 합니다. 팩토리 메서드 패턴은 상속을 통해 구현하며, 하위 클래스에서 객체 생성 방법을 변경할 수 있습니다.

예를 들어, 객체 생성에 대한 구체적인 구현을 제공하는 추상 클래스를 정의하고, 하위 클래스에서 구현을 제공하여 객체 생성 방법을 다양화할 수 있습니다. 이를 통해 클라이언트 코드는 객체 생성 과정에 대한 세부 정보를 알 필요 없이 객체를 생성할 수 있습니다.

팩토리 메서드 패턴은 객체 생성 과정에서 유연성과 확장성을 제공하는 장점이 있습니다. 또한, 객체 생성 과정을 추상화하여 코드의 가독성을 높일 수 있습니다.

아래 코드는 비주얼 스튜디오에서 구현한 예제입니다.

먼저 아래 Polygon이라는 도형의 타입을 결정하는 인터페이스를 정의합니다.

Polygon 인터페이스를 implements 하는 Triangle 클래스를 만들고 getType 메서드를 구현합니다.

마찬가지로, Square 클래스는 Polygon을 implements 하고 getType 메서드를 구현합니다.

PolygonFactory 클래스에서 각 타입에 맞는 도형을 생성합니다.

Pentagon 클래스도 Polygon 인터페이스를 implements 하고 getType 메서드를 구현합니다.

마지막으로 main 메서드에서 각 타입별로 객체생성을 호출하는 코드를 볼 수 있습니다.

그럼 즐 코딩하세요^^

LIST

'JAVA > GOF Design Pattern' 카테고리의 다른 글

GOF Observer Pattern  (0) 2023.05.09
GOF Abstract Factory Pattern  (0) 2023.05.08
GOF Iterator 패턴  (0) 2023.04.28
Gof Template method 패턴  (0) 2023.04.28
GOF singleton 패턴  (0) 2023.04.26