最常用的设计模式---概述

         毕业工作已有了一段时间, 平时开发的时候都是天马行空,想怎么开发就怎么开发。虽然自己写代码的时候也有一些自己的思考,但总觉得自己的设计还是有点下里巴人的感觉。为了让自己看起来高端些, 无耻的装下x,于是写点设计模式的东西。高手的看了的话,笑笑就可以了哈。

       ( For beginer: 必备的uml 基础,请看http://blog.csdn.net/lh844386434/article/details/16826627)

         话说常用的设计模式有23种,但是由于我用本人是在是急功近利,让我把厚厚的一本设计模式一下子全看完,并且看懂。我觉得压力还是有点像山一般的大,故本人偷奸耍滑只学习了最最常用的12种设计模式。然后慢慢的把自己学习到的东西运用到自己的项目中。

         有高手说过,设计模式其实说透了就是利用了面向对象的三大特性: 封装,继承, 多态的特性。并且遵守5大设计原则:单一职责原则、封闭开放原则、里氏替换原则、依赖倒转原则、接口隔离原则。这虽然是概念性的东西,但是我真心觉得还是非常有必要学习记住并遵守。三大特性不用说了,都非常熟悉。

         单一职责原则: 说白了就是一个类不要添加过多的功能,职责尽可能单一,干一件事情就最好只干那一件事情,不要花心,太花心了这个类会吃不消的。

         封闭开放原则:封闭和开放是相对的。

                 封闭是指  ----  一旦就这个类设计好了,功能稳定后,想添加新功能。就不要改动了原有的类。 

                 开放是说  -----  虽然它不能修改但是它要能扩展,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。

          里氏替换原则:其子类对象可以代替父类对象,但其父类对象不能代替子类对象。也就是说父类有的功能,子类也必须有,子类不能屏蔽父类的接口。

          接口隔离原则:使用多个专门的接口比使用单一的总接口要好。和单一职责原类似,就是说接口要也要专一,也不能花心。

          依赖倒转原则:

                 A.高层次的模块不应该依赖于低层次的模块,它们都应该依赖于抽象接口。
                 B.抽象不应该依赖于具体,具体应该依赖于抽象。

          依赖倒转原则有点意思要多说下, 假如按你有一个copy类,实现的功能是从键盘读取数据,输出到打印机。你可能这样设计 

                                                                                                  

            但是现在有新到需求 要求从扫描仪读取数据,输出到一个屏幕,那么这样下去,你可能又要实现一个copy2类,显然Copy类在不涉及键盘或打印机的任何环境中都是不能复用的。其中的原因就是你copy类依赖了底层模块键盘类和打印机类。所以如果copy类依赖于接口,将会出现质的转变:

                                                                                                     

copy 只是键盘打印机实现接口 reader 和 writer ,copy 只负责把reader 接口类型的数据 复制到 writer 类型的的接口对象中。这样你新的扫描仪,屏幕类也只需要实现reader 和writer 接口便可以达到copy 类的复用了。


      好了理论介绍完毕,下面进入正题,模式的学习。我只整理了12种最最常用的设计模式:

单实例模式

工厂模式(简单工厂、工厂、抽象工厂)

观察者模式

适配器模式

策略模式

外观模式

装饰者模式

代理模式

模板方法

       下面具体开始:

        创建型:

             单实例模式  http://blog.csdn.net/lh844386434/article/details/13289867

             工厂模式家族(简单工厂模式, 工厂方法模式, 抽象工厂模式) http://blog.csdn.net/lh844386434/article/details/14518243


         行为型:

             模板方法模式: http://blog.csdn.net/lh844386434/article/details/16848059

             策略模式 : http://blog.csdn.net/lh844386434/article/details/16825861

             观察者模式:http://blog.csdn.net/lh844386434/article/details/18006427

             命令模式:


        结构型:

             适配器模式: http://blog.csdn.net/lh844386434/article/details/17928331

              装饰者模式: http://blog.csdn.net/lh844386434/article/details/17932039

              代理模式:http://blog.csdn.net/lh844386434/article/details/18045671

              外观模式:http://blog.csdn.net/lh844386434/article/details/18045753

              组合模式:

猜你喜欢

转载自blog.csdn.net/lh844386434/article/details/13288469