본문 바로가기

Language/Design Pattern

[Design Pattern: 생성] 2. Factory Method

목적

  • 객체를 생성하는 Factory 클래스를 만들어 코드를 사용한 클래스(Main)에서는 new를 하지 않고 유연하게 사용하고자 하는 목적

JAVA API 예제

Boolean.valueOf()를 통해 new를 하지 않고 객체가 생성됬다. 그리고 내부적으로 동일한 매개변수가 들어왔을 떄 객체를 생성하지 않고 동일한 레퍼런스를 보내는 로직을 Factory에서 담당하고 있다.

예제

인터페이스 Unit을 상속으로 받은 Marin과 Mdedic을 만든다. Unit은 공통적으로 Attack()을 가지고 있다.


Barrack은 Factory역할을 한다. 배력에서 유닛을 만들때 매개변수를 통해 어떤 유닛을 만들지를 결정한다.
여기에서는 Reflection을 사용해서 구현해보았다. 


배럭을 통해 유닛을 만들자. Reflection을 사용했기 때문에 매겨변수로는 class path를 입력해줘야 한다. 근데 과연 이게 더 효과적인지는 모르겠다. 하지만 그래도 Factory Method의 개념상으로는 구현이 되었다.


[출력]

Marine Attack!!: do do do do
Medic Attack: Heal Heal Heal!! 



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

Design Pattern in Java API (JDK)  (0) 2014.02.28
[Design Pattern: 생성] 3. Abstract Factory  (0) 2014.02.28
[Design Pattern: 구조] 6. Adapter  (0) 2014.02.28
[Design Pattern: 생성] 1. Singleton  (0) 2014.02.28
디자인패턴 정리  (0) 2014.02.22