首页 / 设计模式 / 设计模式--抽象工厂模式
设计模式--抽象工厂模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了设计模式--抽象工厂模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1948字,纯文字阅读大概需要3分钟。
内容图文
抽象工厂模式(Abstract Factory Pattern)
定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。
类型:创建型模式
类图:
代码实现:
首先给出产品族,也就是类图中右半部分
package zwb; interface ProductA { void methodA(); } interface ProductB { void methodB(); } class ProductA1 implements ProductA{ publicvoid methodA() { System.out.println("产品A系列中1型号产品的方法"); } } class ProductA2 implements ProductA{ publicvoid methodA() { System.out.println("产品A系列中2型号产品的方法"); } } class ProductB1 implements ProductB{ publicvoid methodB() { System.out.println("产品B系列中1型号产品的方法"); } } class ProductB2 implements ProductB{ publicvoid methodB() { System.out.println("产品B系列中2型号产品的方法"); } }
下面是类图中左半部分,首先给出工厂接口
package zwb; public interface Creator { ProductA createProductA(); ProductB createProductB(); }
下面是两个具体的工厂实现类
package zwb; public class ConcreteCreator1 implements Creator{ public ProductA createProductA() { returnnew ProductA1(); } public ProductB createProductB() { returnnew ProductB1(); } }
package zwb; public class ConcreteCreator2 implements Creator{ public ProductA createProductA() { returnnew ProductA2(); } public ProductB createProductB() { returnnew ProductB2(); } }
这样类图代码实现完毕,下面写一个测试类,去调用一下,感受一下抽象工厂模式的客户端调用方式
package zwb; public class Client { public static void main(String[] args) throws Exception { Creator creator = new ConcreteCreator1(); ProductA productA = creator.createProductA(); ProductB productB = creator.createProductB(); productA.methodA(); productB.methodB(); creator = new ConcreteCreator2(); productA = creator.createProductA(); productB = creator.createProductB(); productA.methodA(); productB.methodB(); } }
运行结果:
产品A系列中1型号产品的方法
产品B系列中1型号产品的方法
产品A系列中2型号产品的方法
产品B系列中2型号产品的方法
工厂方法模式和抽象工厂模式的区别:
工厂方法模式:
- 一个抽象产品类,可以派生出多个具体产品类。
- 一个抽象工厂类,可以派生出多个具体工厂类。
- 每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式:
- 多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
- 一个抽象工厂类,可以派生出多个具体工厂类。
- 每个具体工厂类可以创建多个具体产品类的实例。
区别:
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个
原文:http://www.cnblogs.com/Avaoder/p/6305376.html
内容总结
以上是互联网集市为您收集整理的设计模式--抽象工厂模式全部内容,希望文章能够帮你解决设计模式--抽象工厂模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。