只有登上山顶,才能看到那边的风光前端
目录编程
1.什么设计模式2.设计模式的发展后端
3.设计原则6大原则设计模式
3.1 开闭原则编程语言
3.2 里氏转换原则ide
3.3 依赖倒转原则spa
3.4 接口隔离原则设计
3.5 合成/聚合复用原则 对象
3.6 迪米特原则blog
软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、通过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。设计模式使代码开发真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构同样。只有夯实地基搭好结构,才能盖好坚壮的大楼。也是咱们迈向高级开发人员必经的一步。即12字真言:设计模式是设计经验的总结
提及设计模式的发展,还要从四个男人的故事(注意此处没有女人)开始提及,这四个男人分别是 Erich Gamma, Richard Helm,Ralph Johnson,和John Vlissides,他们是软件设计领域的四位世界顶级大师,那软件设计水平真是不知道高到哪里去了,反正我是自愧不如。这四位大佬合著了一本书《设计模式:可复用面向对象软件的基础》, 提出了23种基本设计模式,从理论高度提炼并规范了设计模式,对面向对象设计,软件复用领域产生了巨大影响。如今设计模式已经被应用到各类各样的编程语言中,不论是后端的Java,C#仍是前端的JavaScript, 你都能看到它的身影,设计模式最大的魅力在于,无论在那种编程语言中,它思想和表现都是同样的,只是代码语法略有不一样而已。
设计模式存在的根本缘由是为了更好地复用代码,增长代码可维护性。
因此有以下6大原则:
对扩展开放,对修改关闭, 即在程序须要进行拓展的时候,不能去修改原有的代码,只能增长新的代码。
这样的例子在咱们的生活中随处可见,好比在各类选秀比赛里,若是两个选手在比赛中打成了平手,咱们不可能说经过穿越到过去,去改变过去的结果,让他们不打成平手,这是不可能实现的。可是咱们能够经过添加附加的比赛,决定他们的胜负。即已经发生的已经不能够改变 ,咱们只能改变那些事情对如今的影响。
子类继承父类,任何基类出现的地方,必定能够用子类替代出现。
这怎么理解呢?好比说你的朋友u盘A中有一些小电影,一天大家像往常同样,把u盘A插入电脑准备一块儿欣赏小电影,却发现u盘A坏了。这给正在兴致勃勃的大家顿时浇了一盆凉水,这时候你灵机一动说,幸亏老子有备份。原来以前你已经把朋友u盘A中的小电影复制到了你的 u盘B中,并且你的u盘B中除了从朋友哪儿复制的小电影,还有一些其它不可描述的内容,这时候你有点犹豫要不要用本身的U盘B,看着正在兴头上的朋友,你一咬牙一跺脚说算了,无论那么多了,淦。因而你拔下朋友的u盘A插入本身的u盘B,顺利打开电影,因而大家又兴致勃勃的观看起来。即子类是对父类的彻底复制,父类能够被子类彻底替代,子类能够增长新的内容,并且不影响父类。
引用一个对象,若是这个对象有底层类型,直接引用底层类型。
说到这里不得不吐槽一些博客的博主,好歹也是写代码的,写博客的时候真没有一点设计模式的原则。前几天在网上搜一个问题,打开一看给我贴了一个另外博客的连接,打开这个连接以后又贴了另一个博客的连接。。。。。。,你引用别人的博客我不反对,你这引用引用的博客就过度了吧。 总结一句话:引用的时候禁止套娃,直接引用最底层的类型。
使用多个隔离的接口,比使用单个接口要好,每个接口应该是一种角色。
好比咱们的电脑上有多种不一样类型的接口,像USB接口,电源接口,高清输出接口等等,它们各自有着不一样的功能,那么为何不用一个接口完成全部的功能呢,这是由于不一样的设备,有不一样的数据规格,并且数据带宽需求也是是不一样的,让他们都使用同一个接口是不科学的,这从usb与hdmi设备的使用环境就能看出来差异。但你也不能每一个设备都分一个接口,这是不现实的,应该把统一数据规格的设备分为一个接口,例如USB接口能够同时支持,鼠标键盘和U盘。即便用多个接口,比使用单个接口要好,可是小得要有限度。
新的对象应使用一些已有的对象,使之成为新对象的一部分。
举个例子:周末天气晴朗,你和好朋友约好一块儿去登山(不是张东升的那种登山),这时候就须要有一个相机,可是不巧的是你的相机坏了,因而你就拿着相机来到了修理店。老板告诉你有一个零件坏了,问你是要更换零件,仍是再买一个新的呢?你内心MMP了一句对老板说,固然是更换零件了,我这相机才买没多久还新着呢。即用已经有的东西合成新的东西,使原来的东西成为新东西的一部分。
一个实体应当尽可能少的与其余实体之间发生相互做用,使得系统功能模块相对独立,即一个对象应对其余对象有尽量少的了解。
这里的对象能够理解为对象(女友),假如你是一个时间管理大师,同时交往了多个对象,固然因为身经百战,你对这些对象应付自如,不像咱们这些老实人,一个都应付不来。可是这是你的小秘密,为了避免让她们发现这个秘密,你就应该使这些对象之间应该尽量少的了解,甚至彻底不了解,若是她们之间了解过多,在相互八卦或者看朋友圈的时候,发现了你的这个小秘密,那但是要出大事情的(喜欢多人运动的除外)。即多个对象之间应该尽可能避免有任何关联。
本文只对设计模式进行了简单的介绍,有些例子可能也不太合适。若是想对设计模式有更多的了解,推荐看上文中四位大佬的那本书:《设计模式:可复用面向对象软件的基础》。
原创不易,若是以为不错的话欢迎关注,转发,感谢!