设计模式篇

一. 什么是设计模式

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

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

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

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

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

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

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

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

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

   

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

  所以:设计模式的最高境界是,忘记设计模式,将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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值