设计模式系列(一)

 作为一个找实习单位的unity程序员,面试5家之后,突然发现好多公司招人时都需要考一些设计模式的问题。平常在学校里,由于项目简单,几乎用不到设计模式,用的最多的也就是单例设计模式。因此要下定决心学习一下设计模式。本篇文章作文开篇文章,只是简单了解一下设计模式。参考了大神的帖子http://blog.csdn.net/zhangerqing/article/details/8194653,还有《大话设计模式》这本书。

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。简单来说,就是编写程序时候能重复利用的小架构,主要有23种设计模式,其中创建型模式有5种,结构型模式有7种,行为型模式有11种。

创建型模式:1.工厂方法模式、2.抽象工厂模式、3.单例模式、4.建造者模式、5.原型模式。

结构型模式:1.适配器模式、2.装饰器模式、3.代理模式、4.外观模式、5.桥接模式、6.组合模式、7.享元模式。

行为型模式:1.策略模式、2.模板方法模式、3.观察者模式、4.迭代子模式、5.责任链模式、6.命令模式、7.备忘录模式、8.状态模式、9.访问者模式、10.中介者模式、11.解释器模式。

       根据大神博客还有并发型模式和线程池模式这两类,以后会慢慢讲到的。有时间就积累一下自己、毕竟理想是当一个牛X的程序员。多说无益,下面在介绍一下设计模式的六大原则。因为是开篇博客,所以要介绍一些概念,这下概念主要在GOF的书上摘抄下来的,这是一本设计模式里面顶级的书,本人小白也只是看前面一点。下面就是设计模式的六大原则,一个一个罗列概念。

1、开闭原则

开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。

2、里氏代换原则

里氏代换原则)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

3、依赖倒转原则

这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。

4、接口隔离原则

这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。

5、迪米特法则(最少知道原则)

为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

6、合成复用原则

原则是尽量使用合成/聚合的方式,而不是使用继承。

设计模式系列的开端就到此了,主要是为自己做笔记用,有问题的希望大家帮助改正。下面一些文章就会开始介绍这些设计模式,由于最近还在找工作,不知道每天写几个,但是一定会坚持写完。

posted @ 2017-02-13 21:55  Ending结局  阅读(101)  评论(0编辑  收藏  举报