【设计模式】工厂方法模式
设计模式总结链接
工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。
工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。
一。简解
工厂方法模式是在简单工厂模式基础上做了一点改进,生产某一类方法的工厂,不仅仅局限于某个(简单工厂模式是生产某个)。
二。用途
主要是用来根据需求生产某一类产品,进一步实现对象创建和使用之间的解耦,通过接口或者抽象类的方式去实现不同对象的相同调用(此处涉及面向对象的里氏代换原则),比起简单工厂模式适应性更广,更易实现同类产品的扩展。
三。实例</font>
用户需要某种产品,通过工厂类生产某种产品,将这种产品抽象为接口,扩展时可以通过实现接口进行扩展。
测试类
package zsl.工厂方法模式;public class Main {public static void main(String[] args) {ProdectFactory myFactory = new ProdectFactory();Prodect prodect = myFactory.prodectInstance("我要的产品");prodect.sayName();}}
产品接口类
package zsl.工厂方法模式;public interface Prodect {/*** 说出该产品的名字*/public void sayName();
}
产品工厂类
package zsl.工厂方法模式;public class ProdectFactory {/*** 根据需求生产一个产品* @param name* @return*/public Prodect prodectInstance(String name){return new ProdectInstance(name);}
}
产品实类
package zsl.工厂方法模式;public class ProdectInstance implements Prodect{private String name;public ProdectInstance(String name) {this.name = name;}/*** 实现接口的方法*/@Overridepublic void sayName() {System.out.println(this.name);}}
四。优点
首先工厂方法基本继承了简单工厂的优点(除了简单,这可是简单工厂独有的特征 (∩_∩))
其次,工厂方法加入了生产一类的产品功能,这个相当于是对简单工厂中实例进行了一种接口的封装,对外提供接口访问,进一步实现了,使用、实现和生产之间的解耦。
加入接口的封装,极大的提高了对某类产品的扩展性。
五。不足
生产一类产品,什么意思,对于不同类产品的生产不是很方便,这也是这个模式的一点小不足之处。不足归不足,达到需求就好了,想用好的,是要代价的。
工厂方法模式,抽象工厂模式,简单工厂模式,三者区别
【设计模式】工厂方法模式相关推荐
- 4. 星际争霸之php设计模式--工厂方法模式
题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...
- java 工厂方法_java设计模式-工厂方法模式
1.工厂方法(FactoryMethod)模式的定义 定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中.这满足创建型模式中所要求的"创建与使用相分离" ...
- 设计模式 | 工厂方法模式及典型应用
工厂方法模式 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化.工厂方法模式让一个类的实例化延迟到其子类. 工厂方法模式又简称为工厂 ...
- python工厂模式 django_python设计模式-工厂方法模式
题目:假设你有一个 pizza 店,功能包括下订单.做 pizza,你的代码会如何写呢? def order_pizza(): pizza = Pizza() pizza.prepare() pizz ...
- 工厂方法模式_1天1个设计模式——工厂方法模式
意图 工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型. 问题 假设你正在开发一款物流管理应用.1.0版本只能支持处理卡车运输,因此大部分的代码都位 ...
- [设计模式] ------ 工厂方法模式
工厂方法模式 手机厂造手机,肥皂厂造肥皂,药品厂造药品. 假设有一大类对象A1,A2,A3,A4-他们都有一个共同的父类A A1可以想成是手机,A2可以想成肥皂- (下面例子的A1Factory就是手 ...
- JAVA设计模式 - 工厂方法模式
工厂方法模式(Factory Pattern) 是一种创建型设计模式 , 它是Java中最常用的设计模式之一 . 1 . 工厂方法模式的定义 定义一个创建对象的接口 , 让子类决定实例化哪一个类 . ...
- Java设计模式—工厂方法模式抽象工厂模式
工厂方法模式与抽象工厂模式都是设计模式中重要而且常见的模式. 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 通用类图如下: 在 ...
- C#设计模式--工厂方法模式
0.C#设计模式-简单工厂模式 设计模式: 工厂方法模式(Factory Method Pattern) 介绍:简单工厂模式是要在工厂类中通过数据来做个决策,在工厂类中的多个类中实例化出来其中一个要用 ...
- 设计模式 - 工厂方法模式 - 基于 Java 实现
常见和工厂有关的设计模式 和工厂相关的设计模式主要有三种,工厂方法模式,抽象工厂模式: 在前面的博客中介绍了简单工厂模式,本篇博客主要介绍的是工厂方法模式 什么是工厂方法模式 工厂方法模式是简单工厂的 ...
最新文章
- python速成要多久2019-8-28_2019最全Python入门学习路线,不是我吹,绝对是最全
- 史上最详细的RocketMq 下单支付案例 分享
- linux安装mysql8.0.18_Linux安装MySQL8.0
- “大话架构”阿里架构师分享的Java程序员需要突破的技术要点
- 数据中心运营之4P标准化运维规程
- linux mysql timestamp_MYSQL中TIMESTAMP类型的使用
- 论文浅尝 - WWW2020 | 从自然语言交互中提取开放意图
- dubbo之分组聚合
- 数据分析方法(一):对比与对标
- div+css 英文或数字自动换行
- jdk8 32位_HashMap源码分析 jdk8
- Java高端培训蚂蚁课堂(每特学院)系列项目实战
- 渗透测试基础总结(脚本小子)
- python游戏程序代码大全_童年游戏,Python一行代码就能实现!
- 线性代数学习心得(二)矩阵的逆和矩阵变换
- 程序员这样优化简历,一投制胜
- 检查日期是否为节假日api
- HDU 4415 Assassin's Creed(贪心)
- 转载自www.dezai.cn 常用sql统计
- 小孩子初次办身份证需携带什么资料?年龄有要求吗?