第八话-工厂方法模式

第八话-工厂方法模式

大家好,又见面了,我是全栈君。




一直想不通你为什么那么狠心。今天用一下工厂方法模式吧。

一、什么是工厂方法模式?
所谓工厂方法模式即简单工厂模式的升级版。

工厂方法模式和简单工厂模式除了工厂类不同之外其它都一样。
二、有了简单工厂模式为什么还用工厂方法模式?
简单工厂模式似乎非常easy。正由于如此。他的工厂类违背了设计模式中的开放封闭原则。以第一话中的计算器为例。每次添加一个新的操作时都要更改工厂类里的switch分支。

这样就违背了面向对象设计的扩展而非改动-也既是之前学习的开放封闭原则。怎么解决问题呢?我们能够採用依赖倒转原则对其完好。
三、代码演示样例(在第一话计算器的基础上改动)
第一个变化:
把之前的OperationFactory.java改动例如以下
public interface OperationFactory {
 public Operation createOperation();
}
第二个变化:
加入新的工厂类:AddFactory.java
public class AddFactory implements OperationFactory {
 public Operation createOperation() {
  // TODO Auto-generated method stub
  return new AddOperation();
 }
}
使用AddFactory给OperationFactory实例化
OperationFactory factory = new AddFactory();
Operation operation = factory.creaOperation();

第八话-工厂方法模式

注:此图来自《大话设计模式》
四、总结
因为有前面简单工厂模式和封闭开放原则的基础,此模式非常easy。一起学习,加油。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116625.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux中nmap命令,Linux中nmap命令起什么作用呢?

    linux中nmap命令,Linux中nmap命令起什么作用呢?摘要:下文讲述Linux中nmap的功能说明,如下所示;nmap是一个网络探测和安全审核的工具,它目前是开放源代码模式nmap命令功能:用于网络探测工具和安全和端口扫描器它可以快速扫描大型网络它运用原始的ip报文的方式发现网络上的主机nmap命令的语法格式:nmap[参数]—–常用参数说明——–traceroute:扫描主机端口并跟踪路由-p:扫描指定端口和端口范围-sP:对目标…

    2022年5月28日
    42
  • java进行四舍五入_java 实现四舍五入功能

    java进行四舍五入_java 实现四舍五入功能告诉你一个小技巧,用4行java代码实现一个四舍五入功能的实例。四舍五入是一种精确度的计数保留法,与其他方法本质相同。但特殊之处在于,采用四舍五入,能使被保留部分的与实际值差值不超过最后一位数量级的二分之一,这种保留法的误差总和是最小的。例子例如π,便被四舍五入,大多保留下3.14了。但是,有的时候不可以用四舍五入的方法,而要用”进一法”和”退一法”。例如,288个学生春游,45人一辆大巴,算下来…

    2022年5月21日
    29
  • PDB文件:每个开发人员都必须知道的

    PDB文件:每个开发人员都必须知道的PDBFiles:WhatEveryDeveloperMustKnowhttp://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05

    2022年7月2日
    22
  • Java 动静分离_如何做前后端动静分离

    Java 动静分离_如何做前后端动静分离我们的ERP系统就是前后端完全分离,毫无关联。后端用的是改造的Laravel框架,将业务拆分、路由拆分,来分离后端复杂的权限验证,同时对外依旧是简单明确的RESTfulAPI。前端采用Vue.js+Bootstrap构建。补充说明题主在问这个问题之前,有必要对HTTP协议有一定的了解,这样你就不会在一些细枝末节无限纠结。因为本质上前后端的区别就在于一个是请求方、一个是响应…

    2022年6月1日
    35
  • 构建嵌入式 Linux 系统的4种有效工具

    构建嵌入式 Linux 系统的4种有效工具

    2021年6月8日
    109
  • 百度快照更新周期、百度收录更新时间[通俗易懂]

    百度快照更新周期、百度收录更新时间[通俗易懂]很多做SEO的都不清楚百度快照的更新周期,所以很多时候都不能有针对性的对网站进行操作,错过了很多机会。百度收录的更新日期一般是每个月的11号和26号,特别是26号,更新最大,但K站也是最多的。另外百度也有一个小的更新的日期,即每周四凌晨4点左右,对网站的访问量没有什么效果,只有到了中午的日期,百度对网站关键字的搜索停止重新调整之后,才会有访问量上的大的变化,有升有降。总体上来说是大致为一个

    2022年9月27日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号