二、抽象工厂模式Abstract Factory(创建型)
来源:互联网 发布:南京高新沿江网络问政 编辑:程序博客网 时间:2024/06/04 01:05
抽象工厂可以创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂需要产生一个和产品相同的继承结构,从而产生出可以生产各种产品的工厂,在使用时,我们可以将不同的工厂注入Client,从而产生不同的产品。
Window作为公用的产品系列,包含WindowsWindow和LinuxWindow两个具体的产品,而WidgetFactory作为产品的抽象工厂接口,其中的createWindow方法是可以产生产品,但是它不实现生产的过程,而是由它的子类,WindowsWidgetFactory和LinuxWidgetFactory来实现产品的实现过程。
public interface Window {public void show();}public class WindowsWindow implements Window{@Overridepublic void show() {System.out.println("Show Windows' window!");}}public class LinuxWindow implements Window{@Overridepublic void show() {System.out.println("Show Linux's window!");}}public interface WidgetFactory {public Window createWindow();}public class WindowsWidgetFactory implements WidgetFactory{@Overridepublic Window createWindow() {return new WindowsWindow();}}public class LinuxWidgetFactory implements WidgetFactory{@Overridepublic Window createWindow() {return new LinuxWindow();}}//testpublic class TestMain {public static void Client(WidgetFactory facotry) {Window win = facotry.createWindow();win.show();}public static void main(String[] args) {String env = "windows";WidgetFactory facotry = null;if("windows".equals(env)){facotry= new WindowsWidgetFactory();} else {//linuxfacotry = new LinuxWidgetFactory();}Client(facotry);}}
这种模式可以分离具体的类,因为工厂负责创建产品对象,从而将客户与类的实现分离;易于交换产品系列,因为应用中仅在初始化时才会创建具体的工厂并使用抽象工厂创建完整的产品系列,所以修改产品时只需修改具体的产品工厂实例即可;易于保证产品的一致性,因为抽象工厂只会生产同一个产品系列而不会同时生产多种。这种模式的缺点在于拓展新产品系列时,需要构建与新产品系列结构完全相同的工厂集合。
0 0
- 二、抽象工厂模式Abstract Factory(创建型)
- 二、创建型模式:抽象工厂模式(Abstract Factory)
- 二、Abstract Factory 抽象工厂模式(创建型)
- Abstract Factory抽象工厂(创建型模式)
- 创建型模式 ABSTRACT FACTORY---抽象工厂
- Abstract Factory 抽象工厂(创建型模式)
- 【创建型模式】abstract factory(抽象工厂)
- 【创建型模式】abstract factory(抽象工厂)
- 创建型-抽象工厂模式(abstract factory)
- 2. 抽象工厂模式(Abstract Factory) ---------- 创建型模式
- 创建型模式2:抽象工厂模式(Abstract Factory)
- 创建型模式:抽象工厂模式(Abstract Factory Pattern)
- 设计模式-创建型-抽象工厂模式(Abstract Factory)
- Abstract Factory模式(抽象工厂模式 创建型)
- Abstract Factory 抽象工厂(创建型模式)
- 3. Abstract Factory 抽象工厂(创建型模式)
- 笔记3:Abstract Factory 抽象工厂(创建型模式)
- 创建型模式:Abstract Factory(抽象工厂)
- HDOJ 1010 Tempter of the Bone
- POJ - 3620 Avoid The Lakes
- 回车符和换行符的区别
- 顺序表应用2:多余元素删除之建表算法
- 【人脸检测】“人脸训练代码”项目笔记(1)——头文件
- 二、抽象工厂模式Abstract Factory(创建型)
- 在EXE和DLL中,FindResource的区别
- 新版手机号码正则表达式
- Android二维码开发(基于Zxing)
- Reflector、reflexil、De4Dot、IL指令速查表
- HDU 2544(最短路径 SPFA 算法模板)
- VC使用动态库关于/MD与/MT的一个坑
- HashMap实现原理
- 2016多校联合训练赛 第四场1001 Another Meaning hdu 5763