设计模式篇

一. 什么是设计模式html

  纠结了很久,今天终于下定决心开始写设计模式系列,由于这个系列章节确实很差写,在这以前,也看了好多关于设计模式的博客、视频、书籍等,大多数用的例子要么猫啊狗啊、大雁等动物类;要么就是学生类,教师类,试想一下,哪一个项目中会用这些动物类教师类呢?编程

  我也和我同行的朋友交流了一下关于设计模式,对设计模式的理解,能够分为这么几个层次:设计模式

  ①:根本不知道什么是设计模式。架构

  ②:据说过几种设计模式,理解不深。ide

  ③:能写出并理解几种设计模式,但不知道在项目中该怎么用。微服务

  毋庸置疑,可否灵活的运用好设计模式,是一个名开发工程师迈向架构师的必经之路,上面说的这么玄乎,那么到底什么是涉及模式呢?这里先借助金庸的武侠小说来类比一下。spa

  做为金庸迷的我,金庸老师的“飞雪连天射白鹿,笑书神侠倚碧鸳”14部小说每一部看了都不低于3遍以上,对里面个各类武功也是了如指掌,像效果比较炫丽,威力比较大的有:“乔帮主降龙十八掌、段誉的六脉神剑、杨过的黯然销魂掌、任我行的吸星大法等等”,这些都是外家功夫,种类不少,一我的可能会多种,这就比如.Net的中MVC、EF、SignalR等等;固然也有内功心法,典型的有:”少林和尚的易筋经、张无忌的九阳神功”,这两种功夫自己并无太大的杀伤力,但会了这种功夫,更容易融会贯通外家功夫,使外家功夫发挥出更大效果,拿到咱们开发领域,“设计模式”就是内功心法,没有语言之分,它是一种模式,一种思想指导着咱们开发。设计

  那么怎么才能算精通设计模式呢?3d

  看过《倚天屠龙记》的朋友可能会记得里面有这么一个场景:赵敏冒充明教挑战张三丰的时候,张无忌办成小道童出来救场,在对阵三个家奴的的时候,张三丰教了张无忌一套太极拳法,里面有这么一段对话:代理

   

  张三丰演示完后,问张无忌:“无忌,你记住了多少”,张无忌回答说:“无忌不才,只有一小部分没有记住”;过了一会,张三丰又问道:“如今能记住多少”,无忌说:“太师傅,我已经所有忘记了”,这时,张三丰说:“无忌你能够上了”,结果显然而知,对手被打的那叫一个惨啊。

  因此:设计模式的最高境界是,忘记设计模式,将23种的设计模式天然而然的融入开发中,哈哈,固然这个有点难,没有个五年以上的功力,很难达到这个层次。

  

二. 设计模式的内容

  设计模式是一种套路,是把 “别人成功的例子” 拿过来灵活运用,咱们的优秀的前辈总结出来7个设计原则23种设计模式

设计原则:

    1. 单一职责原则    2. 里氏替换原则    3. 依赖倒置原则

    4. 接口隔离原则    5. 迪米特原则(最小知道原则)    6. 开闭原则

    7. 组合聚合原则

 

设计模式:

  1. 建立型模式 :工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

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

  3. 行为型模式:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

 

   解释:设计模式只是一个大概的套路,不能生搬硬套,有一些作法多是多个设计模式的融合,有的也很难归为某个设计模式。不要为了设计模式而设计模式,没有十全十美的代码。

  在上述设计模式中,大部分设计模式都用到了上面的设计思想,在设计模式中,咱们会常常看到:开闭原则、里氏替换原则(多态)、面向接口编程、面向抽象编程、抽象类、override覆写这几种技术。

  若是对于抽象类或者override不明白的,有必要先看一下下面的章节:

                           第一节:从面向对象思想(oo)开发、接口、抽象类以及两者比较 

                          第二节:重写(new)、覆写(overwrite)、和重载(overload)

 

三. 系列章节

   下面将由浅入深,结合实际案例来说解设计原则和设计模式。

 

     第一节:见识设计模式的神器之处。

     第二节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第三节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第四节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第五节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第六节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第七节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第八节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第九节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十一节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十二节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十三节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十四节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十五节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十六节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十七节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十八节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十九节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十一节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十二节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十三节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十四节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十五节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十六节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十七节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十八节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十九节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第三十节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第三十一节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第三十二节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第三十三节:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

 (该系列推后了,目前计划为  SignalR → 微服务)

 

 

相关文章
相关标签/搜索