设计模式_简单工厂模式

一、面向对象的编程

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

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

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

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

二、面向对象的好处

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

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

这里还有一个例子。

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

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

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

三、简单工厂模式组合

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

四、简单工厂模式缺点

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

原文地址:https://www.cnblogs.com/itblog/p/2872191.html