程序员人生 网站导航

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

栏目:框架设计时间:2015-04-08 09:00:07

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

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

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

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

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

3个原则主要就是在软件开发进程中的原则,1般情况下如果软件设计公道,是不背背这3个原则的。

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


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

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


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

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

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

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


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐