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

    一、面向对象的编程

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

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

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

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

    二、面向对象的好处

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

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

    这里还有一个例子。

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

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

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

    三、简单工厂模式组合

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

    四、简单工厂模式缺点

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

  • 相关阅读:
    《需求工程——软件建模与分析》读后感之三
    项目目标文档
    利益相关者描述案例
    《需求工程——软件建模与分析》读后感之二
    《需求工程——软件建模与分析》读后感之一
    专业实训题目需求分析
    《代码之美》读后感
    计算“1”的数量
    团队冲刺第九天
    linux df 命令
  • 原文地址:https://www.cnblogs.com/itblog/p/2872191.html
Copyright © 2011-2022 走看看