`

工厂模式细致理解

 
阅读更多


工厂模式存在的意义:  对重复使用的复杂对象进行封装,一行代码new出来

1.工厂模式
  1.1 工厂方法模式 (一个类专门管理构造方法)
     1.1.1普通工厂模式(工厂类中只有一个方法,根据方法传入的参数创建不同对象)
     1.1.2多工厂模式(工厂类中有多个方法,每个方法创建不同的对象,避免打字母出错)
     1.1.3静态工厂模式(将工厂类中的方法变成静态方法)
  1.2 抽象工厂模式  (将工厂由类变为接口,将类中的方法变为类)

 

重点理解抽象工厂模式与其他工厂模式的差别

 

 

抽象工厂模式的优点:对修改封闭,对扩展开放。其他工厂模式必须修改原来的代码

 举个例子,多工厂模式需要增加一个新的功能,需要修改工厂类,如下图所示

               旧代码                                       新代码

 

那么如果采用抽象工厂方式呢?
 先创建接口,然后一个具体的类实现接口就行了 

public interface Provider {  
    public Sender produce();  
}  ...
...
public class TestFactory implements Provider {  
    public Sender produce(){  
        return new TestSender ();  
    }  
}  
以后要添加新功能 只要按照以上的2个步骤,就可以了,不用修改原来的代码。
  • 大小: 25.6 KB
分享到:
评论

相关推荐

    软件工程考试 模拟卷

    需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。 软件开发环境可按以下几种角度...

    Image-category-understanding-and-application:此库为2017-2018年度工程实践项目,主要目的是能够识别图像类别,尤其是医学类,然后在医学类中再进行更为细致的类别识别,以达到医学影像这一垂直领域的应用目的

    此库为2017-2018年度工程实践项目,主要目的是能够识别图像类别,尤其是医学类,然后在医学类中再进行更为细致的类别识别,以达到医学影像这一垂直领域的应用目的。 blog: 环境 操作系统:Windows10 编程语言:...

    cpu模型机课程设计.zip

    本模型机所使用的器件较多,布线的工作量相当大,希望同学们认真、细致地工作。 元器件布局的一般原则是尽心能地按功能电路相对集中,这样做的好处是各器件之间的连线较短,同时也便于组装和调试. 为了安装和调试...

    通信系统中MATLAB的仿真应用1.doc

    摘要通信系统中MATLAB的仿真应用摘要通信系统仿真贯穿着通信系统工程设计的全过程,对通信系统的发展起着...本文在深刻理解通信系统理论的基础上利用MATLAB强大的仿真功能,设计了许多具体的通信系统仿真模型。在仿

    动态短信通信复杂网络演化模型研究 (2009年)

    为了深入理解手机短信通信网络的演化规律,通过分析手机短信通信网络生长过程的特点,研究了已有复杂网络演化模型刻画短信通信网络生长过程的不足,从而建立了短信通信复杂网络的动态演化模型.该模型在考虑网络动态...

    写给大忙人看的Java核心技术.[美]Cay S. Horstmann(带详细书签) PDF 下载 高清 完整版

    这种亲身实践的讲授模式,非常便于各阶层读者加深对技术的理解和掌握,初学者可用来参考入门,有开发经验者也可用来巩固编程核心知识,或与时俱进地把握技术发展现状与未来趋势。 《写给大忙人看的Java核心技术》...

    The Definitive Guide to ARM Cortex M0 & M0+

    l 深度剖析系统模型、指令集以及中断处理,以利于理解ARM Cortex-M0与Cortex-M0+的工作方式; l 综合运用汇编语言和C语言实现的丰富的ARM Cortex-M0与Cortex-M0+编程案例,有助于快速动手实践; l 系统论述软件的...

    写给大忙人看的Java核心技术 高清(带目录)PDF

    这种亲身实践的讲授模式,非常便于各阶层读者加深对技术的理解和掌握,初学者可用来参考入门,有开发经验者也可用来巩固编程核心知识,或与时俱进地把握技术发展现状与未来趋势。 《写给大忙人看的Java核心技术》...

    ABB机器人的手动操作(1).doc

    3.3.2RobotStudio中的建模功能 当使用RobotStudio进展机器人的仿真验证时,如节拍、到达能力等,如果对周边模 型要求不是非常细致的表述时,可以用简单的等同实际大小的根本模型进展代替,从而 节约仿真验证的时间...

    《The Tangled Web》:“破解Web乱局”324页完整、文字(非扫描)PDF版

    然后在第一部分细致地讲解了现代浏览器如何工作的基本技术机理,包括协议、文档格式、脚本语言等等,掌握这些细节性的概念与技术原理是理解分析目前浏览器安全问题与特性的前提基础;第二部分作者真正进入到浏览器的...

    Seadragon ERP2

     对于企业来说,要想成功地实施ERP系统,决不只是简单的安装和应用,它需要工程技术人员深刻地理解企业的产、供、销、财务等各个环节的业务流程及其相互关系;需要企业打破和摒弃一些原有的落后的管理体制和管理...

    网络安全与攻防课程标准.doc

    根据高职教育的特点,按照学院"高起点、严管 理"的办学思路和"校企融合、协同创新"的办学模式,积极探索"校企合作、工学结合"的 人才培养模式,积极探索以实践能力考核为主的课程评价方法,切实提高学生的职业能 ...

    Seadragon ERP

     对于企业来说,要想成功地实施ERP系统,决不只是简单的安装和应用,它需要工程技术人员深刻地理解企业的产、供、销、财务等各个环节的业务流程及其相互关系;需要企业打破和摒弃一些原有的落后的管理体制和管理...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...

Global site tag (gtag.js) - Google Analytics