-1
A
回答
5
我会告诉你一个传统的例子。想象一下你有一个UI库。它具有不同UI组件的实现,如按钮,滑块,单选按钮等。您还希望对这些组件有不同的外观和感觉,例如银色,黑色,浅色,类似窗口,gtk等。可以使用抽象类,这使得普通的东西为从抽象继承每个组件的创建和子类,并指定唯一的区别:
class AbstractComponentFactory {
public abstract Button createButton() {
//implementation
}
public abstract Slider createSlider() {
//implementation
}
}
class SilverComponentFactory extends AbstractFactory {
public Button createButton() {
Button b = base.createButton();
//customize the button
}
public Slider createSlider() {
Slider b = base.createSlider();
//customize the slider
}
}
class WindowsComponentFactory extends AbstractFactory {
public Button createButton() {
Button b = base.createButton();
//customize the button with windows look-and-feel
}
public Slider createSlider() {
Slider b = base.createSlider();
//customize the slider with windows look-and-feel
}
}
现在,如果你需要创建的组件,你可以动态改变的实施抽象工厂:
public void createUI(AbstractComponentFactory f) {
Button b = f.createButton();
Slider s = f.createSlider();
}
//..
createUI(new SilverComponentFactory());
Here是样本类图,我ho它并不那么复杂。
相关问题
- 1. 抽象工厂设计模式 - C#
- 2. 设计模式 - 抽象工厂 - BombedMazeFactory
- 3. 抽象工厂设计模式c#
- 4. 抽象工厂坏设计?
- 5. 工厂和抽象工厂模式
- 6. 抽象工厂模式
- 7. 抽象工厂模式
- 8. 抽象工厂模式
- 9. 在单元测试中使用工厂/抽象工厂设计模式
- 10. 这是一个有效的抽象工厂设计模式吗?
- 11. 根据IoC和抽象工厂模式的类设计
- 12. 具有默认实现的抽象工厂设计模式
- 13. 抽象工厂设计模式的缺点是什么?
- 14. 工厂方法和抽象工厂设计模式有什么区别?
- 15. 设计模式:抽象工厂和通用仓库
- 16. 关于抽象工厂模式的undrestanding
- 17. 策略设计模式与抽象工厂模式有什么区别?
- 18. iOS工厂设计模式
- 19. 工厂模式设计
- 20. DbProviderFactory ADO.Net中的抽象工厂和工厂模式?
- 21. MVC 3和抽象工厂模式
- 22. 与抽象工厂模式澄清后
- 23. 何时使用抽象工厂模式?
- 24. 如何应用抽象工厂模式?
- 25. 抽象工厂
- 26. 抽象工厂模式和工厂在产品中的多级工厂
- 27. 抽象工厂模式 - 混凝土工厂
- 28. 在软件设计工厂模式中使用抽象泛型类
- 29. 模型对象内的抽象工厂?
- 30. 设计模式 - 在构建器和抽象工厂之间进行选择
您是指抽象类还是抽象工厂模式? – tom
抽象工厂模式 – user1808932
@OP:您是否熟悉简单工厂模式?抽象工厂(或多或少)是一个生成简单工厂的简单工厂,可以生成具体类:) – SWeko