반응형
오늘은 팩토리 메소드 패턴(Factory Method Pattern) 에 대해서 글을 쓰고자 한다.
요즘 Spring 프레임워크를 공부하고 있는데 내가 요즘 듣는 강의와 책에서 공통적으로 해당 패턴을 설명하기에 내 나름대로 정리하고자 한다.
정의
팩토리 메소드 패턴 은 간단하게 설명하자면 객체의 생성 부분을 별도의 클래스로 분리해 캡슐화 시키는 것이다.
상위 클래스에 하위 클래스를 생성하는 부분을 감출수 있고 어떤 객체를 생성할 것인지 하위 클래스가 결정할 수도 있다.
장점
- 팩토리 메소드 패턴을 통해 객체를 생성하는 코드의 중복을 피할 수 있다.
- 객체의 생성 로직과 사용하는 로직을 분리해 코드 결합도와 의존성을 낮추고 객체 생성에 대한 책임을 서브클래스에 위임할 수 있다.
예제
UML Class Diagram
- Creator : 팩토리 메서드를 가지고 있는 interface
- CarCreator : Creator 인터페이스의 구현체로 factory 메서드의 세부 구현과 factory 메서드가 Car 객체 반환
- Car : 반환된 Car 객체
아주 간단하게 자바로 코드를 짜봤다.
소스 코드는 깃에 올려두었다.
https://github.com/HyeYeonCha/FactoryMethodPattern
해당 코드는 인터페이스 상속을 이용한 팩토리 클래스의 추상화 예제로 굳이 인터페이스를 사용할 필요는 없다.
대신 인터페이스를 사용하면 비슷한 객체 생성 클래스를 만들 때 편리하다.
또 다른 예시로 Creator interface 를 구현받는 ShoseCreator 도 만들어 보았다.
(객체 구조는 앞서 만든 Car 와 동일하다.)
Test 도 전부 잘 통과했다.
반응형
댓글