2009년 10월 5일 월요일

Factory Method Pattern

Factory Method Pattern ?

인스턴스를 생성하는 공장을 Template Method 패턴으로 구성한 것이 Factory Method 패턴
구체적인 내용은 모두 하위 클래스 측에서 수행( 인스턴스를 만드는 방법을 상위 클래스 측에서
   결정하지만 구체적인 클래스 이름까지는 결정하지 않음)

   ☞ 인스턴스 생성을 위한 골격과 실제 인스턴스 생성의 클래스를 분리해서 생각할수 있음

 

Factory Method Pattern의 클래스 다이어그램

 

비지오에서는 위와 같은 모습으로 보이는것이 안되어서.. 어쩔수없이 파워포인트로 수작업하였다...


예제프로그램


Product 클래스
: framework 패키지의 Product클래스는 '제품'을 표현한 클래스 입니다. 이 클래스에서는 추상 메소드 use만이 선언되어 있습니다. 구체적인 use의 구현은 모두 하위 클래스에게 맡기고 있습니다.

펼쳐두기..



Factory 클래스
: framework 패키지의 Factory클래스에서는 Template Method 패턴이 사용되고 있습니다. 추상 메소드 createProduct에서는 제품을 만들고, 만든 제품을 추상 메소드 registerProduct에서 등록합니다.
제품을 만들고, 등록하는 구현은 하위 클래스에서 수행합니다. 이 framework에서 공장이란 create메소드에서 Product의 인스턴스를 생성하는 것으로 규정하고 있습니다. 그리고 create 메소드는 createProduct에서 제품을 만들어서 registerProduct에서 등록한다 라는 순서로 구현되고 있습니다.

펼쳐두기..


IDCard클래스
: IDCard클래스를 제품 product 클래스의 하위클래스로 정의합니다.

펼쳐두기..



IDCardFactory
: createProduct 와 registerProduct의 두가지 메소드를 구현하고 있습니다.

펼쳐두기..



Main클래스
: 실제의 IDCard를 만들어서 사용해보겠습니다.

펼쳐두기..


위의 예제 소스는 C#으로 되어있습니다 자바를 원하시는 분은 이전에 올린 소스파일을 참고하시기 바랍니다.

 

출처 : JAVA 언어로 배우는 디자인 패턴 입문(영진닷컴)

댓글 없음:

댓글 쓰기