1 개요[ | ]
- abstract factory pattern
- 추상 팩토리 패턴
- 생성 패턴의 하나
- 객체를 통해 제품을 생산
- 부품을 조립해서 제품을 만드는 구조
- 팩토리 객체에 객체 생성을 위임한다.
- Client의 인스턴스는 추상 팩토리를 이용하며 추상 팩토리는 구상 팩토리(ConcreteFactory)에 객체 생성을 맡긴다.
- Client는 추상 팩토리를 통해 추상 Product 타입의 객체를 얻는다.
- 객체 컴포지션을 활용한다.
2 예제 (java)[ | ]
Java
Copy
/* GUIFactory example -- */
public class ApplicationRunner {
public static void main(String[] args) {
new Application(createOsSpecificFactory());
}
public static GUIFactory createOsSpecificFactory() {
if (System.getProperty("os.name").startsWith("Windows")) return new WinFactory();
return new OSXFactory();
}
}
interface Button {
void paint();
}
interface GUIFactory {
Button createButton();
}
class WinFactory implements GUIFactory {
public Button createButton() {
return new WinButton();
}
}
class OSXFactory implements GUIFactory {
public Button createButton() {
return new OSXButton();
}
}
class WinButton implements Button {
public void paint() {
System.out.println("I'm a WinButton");
}
}
class OSXButton implements Button {
public void paint() {
System.out.println("I'm an OSXButton");
}
}
class Application {
public Application(GUIFactory factory) {
Button button = factory.createButton();
button.paint();
}
}
Loading
3 같이 보기[ | ]
4 참고[ | ]
편집자 Jmnote
로그인하시면 댓글을 쓸 수 있습니다.