1. Factory 패턴 이란
아주 중요한 패턴중에 하나 입니다. Factory 패턴은 creational pattern 에 속하는 패턴입니다.
Factory 패턴은 객체생성로직 없이 객체를 만들어 내는 패턴입니다.. 인터페이스를 통해 만들어진 객체를 참조 하죠.
쉽게 설명해드리겠습니다. factory 는 한국어로 공장이란 뜻이죠. 즉 객체를 만들어내는 공장 입니다.
객체 선언은 보통 new 객체() 이런식으로 하죠. factory는 내부에서 그런 일을 해줍니다. 즉 factory를 가져다가 쓰는 부분에서는 new 객체()와 같은 식으로 변수를 선언할 필요가 없습니다. Abstract class나 인터페이스에 대해서 다양한 하위 구현체가 있을 경우에 사용하면 좋습니다. 사용법은 Factory.create(인자는 맘대로) 와 같이 됩니다.
실무에서 자주 쓰이는 패턴중 하나이니 아래와 같이 천천히 따라해보도록 하죠.
2. 따라하기
// animal 인터페이스를 만듭니다. 기본이 되는 interface 죠. 모든 디자인 패턴은 interface 를 사용한다 해도 과언이 아닙니다.
// Cat 클래스를 만듭니다.
// Cow 클래스를 만듭니다.
// Dog 클래스를 만듭니다.
// animal 을 만들어내는 AnimalFactory 클래스를 만든다.
//( 이 class 가 핵심 입니다. factory 패턴을 구현한곳이죠. 이해하기 힘드시다면 이 class 만 30번 보시면 이해가 되실겁니다.)
// 자 테스트를 한번 해볼까요.
3. Factory 의 이해
위의 결과와 같이 Animal interface 를 이용해서 각자 다른 소리를 내는 3개의 클래스를 만들어 봤습니다.
AnimalFactory 클래스에서는 각 동물들의 이름을 받아서 클래스를 만들어 냈습니다. 즉 팩토리 패턴을 구현해 놓은 클래스 입니다.
테스트를 실행하는 main 클래스 안에는 new 라는 구문 자체가 없습니다 팩토리 패턴은. 정확히 어떤 클래스의 인스턴스인지 신경쓰지 않고 구현할 수 있는 장점이 있습니다. 객체 타입이 굉장히 유연해 질 수 있죠.
이것으로 아주 쉽게 배우는 factory 패턴을 마치고자 합니다.
'프로그래밍 > 디자인패턴' 카테고리의 다른 글
쉽게 배우는 Adapter 패턴 (아답터 패턴) (0) | 2017.01.29 |
---|---|
쉽게 배우는 Iterator 패턴 (이터레이터 패턴) (0) | 2017.01.29 |
디자인 패턴의 간략한 암기 (0) | 2017.01.21 |
factory pattern vs abstract pattern (0) | 2016.09.01 |
자바 에서 쓰이는 디자인 패턴들 (0) | 2016.08.26 |