편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
2번째 줄: | 2번째 줄: | ||
;abstract factory pattern | ;abstract factory pattern | ||
;추상 팩토리 패턴 | ;추상 팩토리 패턴 | ||
*객체를 통해 제품을 생산 | |||
* 객체를 통해 제품을 생산 | *부품을 조립해서 제품을 만드는 구조 | ||
* 부품을 조립해서 제품을 만드는 구조 | *Client의 인스턴스가 ConcreteFactory의 인스턴스에 객체 생성을 맡김 | ||
* | *객체 구성(composition) | ||
* | |||
http://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Abstract_Factory_UML_class_diagram.svg/800px-Abstract_Factory_UML_class_diagram.svg.png | http://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Abstract_Factory_UML_class_diagram.svg/800px-Abstract_Factory_UML_class_diagram.svg.png | ||
==예제 (java)== | ==예제 (java)== | ||
< | <source lang='java'> | ||
/* GUIFactory example -- */ | /* GUIFactory example -- */ | ||
interface Button { | interface Button { | ||
65번째 줄: | 51번째 줄: | ||
} | } | ||
} | } | ||
</ | |||
public class ApplicationRunner { | |||
public static void main(String[] args) { | |||
new Application(createOsSpecificFactory()); | |||
} | |||
public static GUIFactory createOsSpecificFactory() { | |||
int sys = readFromConfigFile("OS_TYPE"); | |||
if (sys == 0) return new WinFactory(); | |||
else return new OSXFactory(); | |||
} | |||
} | |||
</source> | |||
==같이 보기== | ==같이 보기== | ||
74번째 줄: | 72번째 줄: | ||
*[[디자인 패턴]] | *[[디자인 패턴]] | ||
==참고== | ==참고 자료== | ||
*http://en.wikipedia.org/wiki/Abstract_factory_pattern | *http://en.wikipedia.org/wiki/Abstract_factory_pattern | ||
[[분류: 디자인 패턴]] | [[분류: 디자인 패턴]] |