设计模式总结链接

  工厂方法模式是类的创建模式,又叫做虚拟构造子(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);}}

四。优点

首先工厂方法基本继承了简单工厂的优点(除了简单,这可是简单工厂独有的特征 (∩_∩))
其次,工厂方法加入了生产一类的产品功能,这个相当于是对简单工厂中实例进行了一种接口的封装,对外提供接口访问,进一步实现了,使用、实现和生产之间的解耦。
加入接口的封装,极大的提高了对某类产品的扩展性


五。不足

生产一类产品,什么意思,对于不同类产品的生产不是很方便,这也是这个模式的一点小不足之处。不足归不足,达到需求就好了,想用好的,是要代价的。


工厂方法模式,抽象工厂模式,简单工厂模式,三者区别

【设计模式】工厂方法模式相关推荐

  1. 4. 星际争霸之php设计模式--工厂方法模式

    题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...

  2. java 工厂方法_java设计模式-工厂方法模式

    1.工厂方法(FactoryMethod)模式的定义 定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中.这满足创建型模式中所要求的"创建与使用相分离" ...

  3. 设计模式 | 工厂方法模式及典型应用

    工厂方法模式 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化.工厂方法模式让一个类的实例化延迟到其子类. 工厂方法模式又简称为工厂 ...

  4. python工厂模式 django_python设计模式-工厂方法模式

    题目:假设你有一个 pizza 店,功能包括下订单.做 pizza,你的代码会如何写呢? def order_pizza(): pizza = Pizza() pizza.prepare() pizz ...

  5. 工厂方法模式_1天1个设计模式——工厂方法模式

    意图 工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型. 问题 假设你正在开发一款物流管理应用.1.0版本只能支持处理卡车运输,因此大部分的代码都位 ...

  6. [设计模式] ------ 工厂方法模式

    工厂方法模式 手机厂造手机,肥皂厂造肥皂,药品厂造药品. 假设有一大类对象A1,A2,A3,A4-他们都有一个共同的父类A A1可以想成是手机,A2可以想成肥皂- (下面例子的A1Factory就是手 ...

  7. JAVA设计模式 - 工厂方法模式

    工厂方法模式(Factory Pattern) 是一种创建型设计模式 , 它是Java中最常用的设计模式之一 . 1 . 工厂方法模式的定义 定义一个创建对象的接口 , 让子类决定实例化哪一个类 . ...

  8. Java设计模式—工厂方法模式抽象工厂模式

    工厂方法模式与抽象工厂模式都是设计模式中重要而且常见的模式.       工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 通用类图如下: 在 ...

  9. C#设计模式--工厂方法模式

    0.C#设计模式-简单工厂模式 设计模式: 工厂方法模式(Factory Method Pattern) 介绍:简单工厂模式是要在工厂类中通过数据来做个决策,在工厂类中的多个类中实例化出来其中一个要用 ...

  10. 设计模式 - 工厂方法模式 - 基于 Java 实现

    常见和工厂有关的设计模式 和工厂相关的设计模式主要有三种,工厂方法模式,抽象工厂模式: 在前面的博客中介绍了简单工厂模式,本篇博客主要介绍的是工厂方法模式 什么是工厂方法模式 工厂方法模式是简单工厂的 ...

最新文章

  1. python速成要多久2019-8-28_2019最全Python入门学习路线,不是我吹,绝对是最全
  2. 史上最详细的RocketMq 下单支付案例 分享
  3. linux安装mysql8.0.18_Linux安装MySQL8.0
  4. “大话架构”阿里架构师分享的Java程序员需要突破的技术要点
  5. 数据中心运营之4P标准化运维规程
  6. linux mysql timestamp_MYSQL中TIMESTAMP类型的使用
  7. 论文浅尝 - WWW2020 | 从自然语言交互中提取开放意图
  8. dubbo之分组聚合
  9. 数据分析方法(一):对比与对标
  10. div+css 英文或数字自动换行
  11. jdk8 32位_HashMap源码分析 jdk8
  12. Java高端培训蚂蚁课堂(每特学院)系列项目实战
  13. 渗透测试基础总结(脚本小子)
  14. python游戏程序代码大全_童年游戏,Python一行代码就能实现!
  15. 线性代数学习心得(二)矩阵的逆和矩阵变换
  16. 程序员这样优化简历,一投制胜
  17. 检查日期是否为节假日api
  18. HDU 4415 Assassin's Creed(贪心)
  19. 转载自www.dezai.cn 常用sql统计
  20. 小孩子初次办身份证需携带什么资料?年龄有要求吗?

热门文章

  1. #信用卡#201芯片磁条复合卡写卡技术成功突破及原理解析
  2. 基准测试神器JMH——详解36个官方例子
  3. JS中箭头函数写法及5种简写规则
  4. 一起带你了解数据中心大二层网络演进之路php
  5. InvocationHandler实现类中的invoke方法为什么会被自动执行
  6. 【算法leetcode】2331. 计算布尔二叉树的值(多语言实现)
  7. 解决PHP中JSON中文乱码的几种方法
  8. 【selenium】鼠标控制和键盘控制
  9. 1.DevOps简介
  10. 多余的财富只能够买多余的东西