工厂方法创建一般只有一个方法,创建一种产品。
抽象工厂一般有多个方法,创建一系列产品。
目的不一样
工厂方法创建 "一种" 产品,他的着重点在于"怎么创建",也就是说如果你开发,你的大量代码很可能围绕着这种产品的构造,初始化这些细节上面。也因为如此,类似的产品之间有很多可以复用的特征,所以会和模版方法相随。
抽象工厂需要创建一些列产品,着重点在于"创建哪些"产品上,也就是说,如果你开发,你的主要任务是划分不同差异的产品线,并且尽量保持每条产品线接口一致,从而可以从同一个抽象工厂继承。
一、简单工厂
简单工厂模式中工厂为具体工厂,产品为抽象产品,由工厂实例创建产品实例。
二、工厂方法
工厂方法中有抽象的工厂类,一种抽象的产品类,而工厂类中仅创建此抽象产品类的实例,具体产品实例由具体的工厂类创建。
三、抽象工厂
抽象工厂创建多类产品,可将这些产品理解为一套相关的产品,由工厂在创建时一起创建,每类产品有不同的实例。实践中一般会用反射来创建工厂的实例,配合配置文件或依赖注入容器来避免创建不同产品时还需要修改客户端代码,即符合“修改封闭,扩展开放原则”,一点拙见,欢迎指正。
以下转自terryLee的博客:
概述
在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在着更多系列对象的创建工作。如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?这就是我们要说的抽象工厂模式。
意图
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
模型图
逻辑模型:
物理模型:
相关推荐
工厂方法模式和抽象工厂模式的区别,对工厂方法模式和抽象工厂模式做了简单的比较
4.简单工厂-工厂方法-抽象工厂 对比总结
介绍的是工厂模式 包括简单工厂模式、工厂方法模式、抽象工厂模式 包括PPT和代码
Java实现的工厂模式,抽象工厂,工厂方法模式
工厂方法与抽象工厂设计模式,这份文档介绍了这种设计模式
本文章通俗易懂的对工厂模式进行了讲解,相信您看完这篇文章会对工厂模式有更深入的了解
设计模式之工厂方法、简单工厂、抽象工厂
抽象工厂设计模式抽象工厂设计模式 抽象工厂设计模式 抽象工厂设计模式 抽象工厂设计模式 抽象工厂设计模式 抽象工厂设计模式
用java语言实现工厂方法模式和抽象工厂模式
介绍工厂模式,工厂方法和抽象工厂。三个模式的适应情况,以及其区别。
NULL 博文链接:https://1193355343.iteye.com/blog/2370838
java 23种设计模式 工厂方法模式和抽象工厂模式,详细源码分析请看博客: http://blog.csdn.net/github_22022001/article/details/42100257 http://blog.csdn.net/github_22022001/article/details/42101157 ...
从简单工厂,到工厂方法到抽象工厂,这几种都带有“工厂”的模式,总是容易叫人迷糊,我仔细研究了下,然后用简单的例子做类比,列出了自己的通俗理解和比较,大部分是自己的体会,感觉理的比较清楚,末尾提了下...
java设计模式 抽象工厂模式详解 一张图让你彻底明白抽象工厂模式
本资源主要介绍工厂方法模式和抽象工厂模式。二者都与工厂相关,,但是其本质又大相径庭。这里先来简单介绍下二者的区别,以免混淆。 抽象工厂模式:提供一个接口,用于创建一系列相关的对象,而无需指定具体的类。...
深入浅出设计模式之抽象工厂模式+工厂方法模式+策略模式实现手机加工厂(加类图)
NULL 博文链接:https://chuanwang66.iteye.com/blog/1335230
博文链接:https://linpyi.iteye.com/blog/226658
《C++20设计模式》学习笔记-第3章工厂方法和抽象工厂模式学习代码
工厂方法模式和抽象工厂模式