2015-03-06,设计模式初步

来源:互联网 发布:软件开发项目风险管理 编辑:程序博客网 时间:2024/05/29 13:44

今天来点干货,今天因为某些原因没有看哪个关于一些面试的题,反而看了一点关于后几天要做的设计模式的东西,大神神马的可以绕到了,我就是简单说说我的见解,毕竟关于这方面我越来越觉得自己还是远远不够的。

今天我们说三个原则和两个模式,单一职责原则,开放-封闭原则,依赖倒转原则,说了个简单的设计模式,分别是简单工厂模式,和工厂方法模式。

我们一个一个的来,先说单一职责原则。就一个类而言,应该仅有一个引起它变化的原因,在我之前写java的程序的时候,对这些东西感触还是挺深的,单一职责就是说我们要把一个类设计的尽量简单,让他的职责很专注,很单一,不是说把很多东西揉在一起,一个类如果职责过多,后续必定会引起代码的坏味道。

开放-封闭原则OCP(The open-close principle),开放-封闭原则是,软件在迭代开发的时候,免不了会有一些新的需求,我们写的程序在新的需求来的时候,是增加类,增加方法来适应新的需求,而不是一味的修改原来的代码对于扩展是开放的,对于更改是封闭的,对程序的改动是增加新代码进行的,而不是更改现有代码。更改现有的代码,会影响软件的稳定性,也并不利于软件的长久发展。

依赖倒转原则,高层模块不应该依赖于底层模块,两个都依赖于抽象
抽象不应该依赖细节,细节应该依赖于抽象
说白了就是针对接口编程,而不是针对实现编程

三个原则主要就是在软件开发过程中的原则,一般情况下如果软件设计合理,是不违背这三个原则的。

下面我就说说两个比较简单的设计模式吧,先说简单工厂。简单工厂就是下面的这个图。


这个是我从书上截下来的图,这个大概意思就是说一个简简单单的数学运算的设计,这个设计的好处就是,客户类和工厂类分开,消费者任何时候需要某种产品,只需向工厂请求即可,消费者无需修改就可以接纳新产品,缺点就是简单工厂在增加运算的类的时候,要修改简单工厂内部代码,这也就违背了开放-封闭原则。

所以比简单工厂好一点的工厂方法模式就来了,如下图


这个就是工厂方法模式了,工厂方法模式要比简单工厂模式好一点的就是对工厂也同样的进行了抽象,我们可以造很多个工厂来创建消费者,工厂方法模式修正了简单工厂模式中不遵守开放-封闭原则。工厂方法模式把判断移到了客户端去实现,如果想添加新功能就不用修改原来的类,直接修改客户端就行了。以前的简单工厂是只有一个工厂,当我们修改的时候需要修改这个类,而现在改成了需要修改客户端。

其实今天也只是说了个大概,具体的代码,大家可以去看大话设计模式的那本书,感觉那个讲的还是不错的,今天跟着他,写了两个模式,感觉蛮好的。

学习设计模式一定要有项目基础,没有项目基础你看这些模式一点感觉都没有,只有有了一定的项目基础,你才知道些项目的时候为什么会写不下去,为什么会不知道怎么写,只有遇到了那个瓶颈回来看才真的会大彻大悟,所以大家一起加油吧。

今天实在是太晚了,我去刷牙,然后睡觉了,各位看官早点睡,晚安~


0 0
原创粉丝点击