Java设计模式之“抽象工厂模式“
来源:互联网 发布:考勤机已删除数据恢复 编辑:程序博客网 时间:2024/06/05 10:17
抽象工厂模式
- 与工厂方法不同的是,当产品结构较为复杂,有多级产品结构,和多个同级分类的产品的时候,可以通过抽象工厂的方式去解决。
- 所谓抽象工厂,是指将产品抽象,通过工厂去生产产品。
- 一般而言,工厂的结构应该与产品的结构相同,这样才能一一对应。让对应的工厂去生产对应的产品。
- 假设现在有一个二级的产品结构,每个结构都有两种不同种类的产品,那么代码可以是这样:
- 1.产品抽象类
package com.pythoncat.abstructfactory.product;/** * Created by pythonCat on 16-3-26. */public interface Product {}
* 2.一级产品结构类
package com.pythoncat.abstructfactory.product;/** * Created by pythonCat on 16-3-26. */public interface ProductA extends Product { void doSomething();}----------------------------------package com.pythoncat.abstructfactory.product;/** * Created by pythonCat on 16-3-26. */public interface ProductB extends Product { void doSomething();}
- 3.具体的产品类
package com.pythoncat.abstructfactory.product.impl;import com.pythoncat.abstructfactory.product.ProductA;/** * Created by pythonCat on 16-3-26. */public class ProductA1 implements ProductA { public ProductA1() { } public void doSomething() { }}-----------------------package com.pythoncat.abstructfactory.product.impl;import com.pythoncat.abstructfactory.product.ProductA;/** * Created by pythonCat on 16-3-26. */public class ProductA2 implements ProductA { public ProductA2() { } public void doSomething() { }}=============================package com.pythoncat.abstructfactory.product.impl;import com.pythoncat.abstructfactory.product.ProductB;/** * Created by pythonCat on 16-3-26. */public class ProductB1 implements ProductB { public ProductB1() { } public void doSomething() { }}-------------------package com.pythoncat.abstructfactory.product.impl;import com.pythoncat.abstructfactory.product.ProductB;/** * Created by pythonCat on 16-3-26. */public class ProductB2 implements ProductB { public ProductB2() { } public void doSomething() { }}
- 产品结构展示完成,然后是建立相同结构的工厂
- 1.抽象工厂类
package com.pythoncat.abstructfactory.factory;/** * Created by pythonCat on 16-3-26. */public interface Createor {}
- 2.对应具体产品结构的工厂
package com.pythoncat.abstructfactory.factory.impl;import com.pythoncat.abstructfactory.factory.Createor;import com.pythoncat.abstructfactory.product.ProductA;import com.pythoncat.abstructfactory.product.ProductB;import com.pythoncat.abstructfactory.product.impl.ProductA1;import com.pythoncat.abstructfactory.product.impl.ProductB1;/** * Created by pythonCat on 16-3-26. */public class ConCreateor1 implements Createor { public ProductA fracoryA() { return new ProductA1(); } public ProductB fracoryB() { return new ProductB1(); }}-----------------package com.pythoncat.abstructfactory.factory.impl;import com.pythoncat.abstructfactory.factory.Createor;import com.pythoncat.abstructfactory.product.ProductA;import com.pythoncat.abstructfactory.product.ProductB;import com.pythoncat.abstructfactory.product.impl.ProductA1;import com.pythoncat.abstructfactory.product.impl.ProductA2;import com.pythoncat.abstructfactory.product.impl.ProductB1;import com.pythoncat.abstructfactory.product.impl.ProductB2;/** * Created by pythonCat on 16-3-26. */public class ConCreateor2 implements Createor { public ProductA fracoryA() { return new ProductA2(); } public ProductB fracoryB() { return new ProductB2(); }}
- 以上,就是抽象工厂的学习内容。
- 参考: 《Java与模式》 闫宏 著
0 0
- java设计模式之抽象工厂模式
- JAVA设计模式之抽象工厂模式
- Java设计模式之抽象工厂模式
- java设计模式之抽象工厂模式
- 【Java设计模式】之抽象工厂模式
- java设计模式 之 抽象工厂模式
- Java--设计模式之抽象工厂模式
- java设计模式之抽象工厂模式
- 设计模式之JAVA----抽象工厂模式
- java设计模式之抽象工厂模式
- java设计模式之抽象工厂模式
- JAVA设计模式之抽象工厂模式
- Java设计模式之抽象工厂模式
- 《Java设计模式》之抽象工厂模式
- Java设计模式之抽象工厂模式
- java设计模式之抽象工厂模式
- JAVA设计模式之抽象工厂模式
- Java设计模式之抽象工厂模式
- 教育技术菅若琳
- HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
- Fragment实现底部栏
- objective-c C类型数组
- Xilinx SRIO ID
- Java设计模式之“抽象工厂模式“
- Info.plist和pch文件的作用,UIApplication,iOS程序的启动过程,AppDelegate 方法解释,UIWindow,生命周期方法
- 推荐一个C#调用winapi的帮助网站
- 113. Path Sum II
- 系统缓冲区、内核缓冲区、IO库操作本身的缓冲区 之间联系
- 利用ip helper-address配置DHCP
- 欢迎使用CSDN-markdown编辑器
- 如何在 Git 里撤销(几乎)任何操作
- Apache Cordova for ios环境配置