zoukankan      html  css  js  c++  java
  • 设计模式_简单工厂模式

    一、面向对象的编程

    1.可维护性:要改,只需要更改要改动的地方;

    2.可复用:代码单元可以再其他地方被反复使用;

    3.可扩展:要加新功能,只需很方便地增加即可;

    4.灵活性:代码单元的重新组合要很方便,以此实现新的功能。

    二、面向对象的好处

    1.封装。通过封装,比如就可以将业务实现与界面显示实现分开;通过封装,达到容易维护和扩展;

    2.继承:在没有使用继承之前,代码的技术员工资、主管工资都写在一起的话,那么要增加一个销售人员的工资时,需要改代码。而且,这份代码中的其他人员的工资实现对程序员是可见的,这是非常危险的,因为程序可以修改已有人员的工资算法。因此,在扩展时,为了不影响,而且也不应该对程序员可见已有的代码,可以将技术员、主管的工资的实现使用继承来实现。这样,增加销售人员工资实现时,只需得到工资最基本的父类即可,销售人员的实现类就由程序员自己实现。

    这里还有一个例子。

    定义一个算术父类,子类有加法、减法、除法、乘法。今后要修改加法,只需要修改加法一个类就够了,程序员都不需要知道其他的运算类。

    如果要增加其他的算法,只需要再写一个子类就行了,不需要知道其余的类

    3.多态:通过多态,客户端只需要知道父类类型就可以了,以及知道父类的方法就可以了。至于父类具体是什么子类型,可以通过简单的工厂模式来决定。这样就减少了客户端需要维护的工作量。

    三、简单工厂模式组合

    继承+多态+简单工厂模式

    四、简单工厂模式缺点

    它只是解决对象的创建问题,,但是每次由于算术算法的更改,都需要更改工厂,导致代码需要重新编译。

  • 相关阅读:
    how to uninstall devkit
    asp.net中bin目录下的 dll.refresh文件
    查找2个分支的共同父节点
    Three ways to do WCF instance management
    WCF Concurrency (Single, Multiple, and Reentrant) and Throttling
    检查string是否为double
    How to hide TabPage from TabControl
    获取当前系统中的时区
    git svn cygwin_exception
    lodoop打印控制具体解释
  • 原文地址:https://www.cnblogs.com/itblog/p/2872191.html
Copyright © 2011-2022 走看看