편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
2번째 줄: | 2번째 줄: | ||
;factory method pattern; factory method, factory pattern | ;factory method pattern; factory method, factory pattern | ||
;팩토리 메소드 패턴, 팩토리 메서드, 팩토리 패턴 | ;팩토리 메소드 패턴, 팩토리 메서드, 팩토리 패턴 | ||
*하위클래스에서 인스턴스 생성하도록 하는 구조 | |||
* 하위클래스에서 | *공장에서 제품을 만들어내듯, OO공장 인스턴스가 OO을 만들어내는 구조 | ||
* 공장에서 제품을 만들어내듯, OO공장 인스턴스가 OO을 만들어내는 구조 | *추상 단계<ref>interface 또는 abstract class</ref>에서는 생성하려는 객체의 클래스를 정확히 지정하지 않음 | ||
* 추상 단계<ref>interface 또는 abstract class</ref>에서는 생성하려는 객체의 클래스를 정확히 지정하지 | |||
[[File:FactoryMethod.svg|400px]] | |||
[[ | |||
==예제 (java)== | ==예제 (java)== | ||
< | <source lang='java'> | ||
interface CarFactory { | interface CarFactory { | ||
public Car makeCar(); | public Car makeCar(); | ||
48번째 줄: | 25번째 줄: | ||
public String getType() { return "Sedan"; } | public String getType() { return "Sedan"; } | ||
} | } | ||
</ | |||
public class Main { | |||
public static final void main(String[] args) { | |||
SedanFactory sedanFactory = new SedanFactory(); | |||
Car car = sedanFactory.makeCar(); | |||
System.out.println("Type: " + car.getType() ); | |||
} | |||
} | |||
</source> | |||
==같이 보기== | ==같이 보기== | ||
*[[Template method 패턴]] | |||
* [[ | *[[Singleton 패턴]] | ||
* [[ | *[[Composite 패턴]] | ||
* [[ | *[[Iterator 패턴]] | ||
* [[ | *[[디자인 패턴]] | ||
*[[의존성 역전]] | |||
* [[ | ==주석== | ||
* [[ | <references/> | ||
==참고== | ==참고 자료== | ||
* | *http://en.wikipedia.org/wiki/Factory_method_pattern | ||
[[분류: 디자인 패턴]] | [[분류: 디자인 패턴]] |