转眼间已经进入了2018年,回顾过去的一年,才发现自己并没有达到预期的目标。虽然有所提高,但是和自己的预期相差甚远。希望能够借着这个系列的开始,给自己的2018年开个好头。

设计模式

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。

我们使用设计模式的目的:

  • 为了代码可重用性
  • 让代码更容易被他人理解
  • 保证代码可靠性。

设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
设计模式本身是和语言没有直接关联的,它是属于一种经验的总结。而我们这个系列,将通过JavaScript来作为分析的主要开发语言。

设计模式的六大原则

  • 1、开闭原则(Open Close Principle)

    开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。

  • 2、里氏代换原则(Liskov Substitution Principle)

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

  • 3、依赖倒转原则(Dependence Inversion Principle)

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

  • 4、接口隔离原则(Interface Segregation Principle)

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

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

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

  • 6、合成复用原则(Composite Reuse Principle)

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

目前的基本计划是,通过JavaScript来展示不同的设计模式的实现方法,进而归纳整理,本文将会作为整个系列的汇总贴不定时进行更新。希望大家多多关注。

PS:之所以优先写出这篇汇总贴,也算是对自己的一个鞭策吧,毕竟承诺了的不能不兑现呢!

附:设计模式间的关系:

设计模式汇总:

  • 单例模式

2018年系列之设计模式汇总贴相关推荐

  1. tensorflow-yolo3系列配置文章汇总

    tensorflow-yolo3系列配置文章汇总 yolo 网络讲解 https://blog.csdn.net/m0_37192554/article/details/81092514 https: ...

  2. 前端每日实战 2018 年 9 月份项目汇总(共 26 个项目)

    过往项目 2018 年 8 月份项目汇总(共 29 个项目) 2018 年 7 月份项目汇总(共 29 个项目) 2018 年 6 月份项目汇总(共 27 个项目) 2018 年 5 月份项目汇总(共 ...

  3. 炒冷饭系列:设计模式 单例模式

    2019独角兽企业重金招聘Python工程师标准>>> 炒冷饭系列:设计模式 单例模式 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆 ...

  4. 深入学习图数据库语言Gremlin 系列文章链接汇总

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/javeme/article/detai ...

  5. 荣耀 MagicBook 系列新品发布会汇总:多款锐龙本、平板电脑登场~~~

    7 月 16 日消息,今天下午荣耀举行 MagicBook 系列新品发布会,发布了多款搭载锐龙 4000 系列处理器的 MagicBook 轻薄本以及新款荣耀平板. 首先是 MacgicBook Pr ...

  6. 2018年中考计算机考试成绩,2018年中考录取分数汇总,35所初中考成绩看2019中考!...

    原标题:2018年中考录取分数汇总,35所初中考成绩看2019中考! 2018年录取分数线 2018年初中成绩 现在家长还不知道怎么根据孩子的成绩来估计以后中考会怎么样,那就看看今年各个初中学校考的怎 ...

  7. 西门子博途v16系统要求_【技成周报30期】西门子系列常见问题答疑汇总

    更多精彩,请点击上方蓝字关注我们!西门子S7-200SMART PLC问题▲▲▲ 问:STEP 7-MicroWIN SMART编程软件当中符号表地址I0.0下面红色波浪线是什么原因? 答:说明该地址 ...

  8. 2018山东计算机录取分数,【分数线】2018山东省公费师范生分数线汇总

    原标题:[分数线]2018山东省公费师范生分数线汇总 日前,山东省教育厅.山东省卫生健康委员会.山东省农业农村厅等三部门发布了<关于做好2019年公费生及委培师范生招生工作的通知>. 全省 ...

  9. Adobe系列安装问题汇总,遇到这些问题该怎么办

    在使用电脑的时候,Adobe系列软件用到几率还是比较大的,但是在安装Adobe软件时,总是提示各种安装错误就非常头疼了,下面小编为大家带来官方提供的Adobe错误代码对照表及解决方案,快来看看你有没有 ...

最新文章

  1. python如何判断两个数组完全相等?
  2. zookeeper做分布式锁
  3. ASP+COM 组件开发
  4. SAP Analytics Cloud里取出SAP Cloud for Customer的Reports列表
  5. Codeforce 1255 Round #601 (Div. 2) A. Changing Volume (贪心)
  6. 机器学习笔记(二十)——求解最大熵模型
  7. 软件测试的含义以及测试的对象
  8. linux 内核源码学习
  9. python遇到异常跳过_教你使用Python遇到的异常的处理方式!
  10. Mac电脑共享“公共文件夹”以外的文件夹的设置教程
  11. 常微分方程组及高阶常微分方程的数值解法
  12. 获取百度网盘直链下载链接的方法
  13. SNF开发平台WinForm-EasyQuery统计分析-效果-非常牛逼的报表查询工具
  14. 思维导图训练孩子逻辑思维能力的方法
  15. 数据库连接在哪?数据库连接池
  16. 你知道CAD看图软件浩辰CAD看图王中的批注如何删除/保存吗?
  17. 论文阅读:日志聚合 - 关联分析
  18. javascript中的原型与原型链
  19. Linux ps -A 和 ps -ef
  20. 最新《煤矿井下人员定位系统安全标志管理方案(试行)》等通知,助力煤矿新进程

热门文章

  1. python 读取文本文件_如何在Python中读取大文本文件
  2. Java基础之字符如何截取?
  3. 《网络攻防第六周作业》
  4. 18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集群
  5. C# Winform编程ListBox之DrawItem事件
  6. 【Codeforces811E】Vladik and Entertaining Flags [线段树][并查集]
  7. 在OL6.5_64上安装Oracle11gR2_64
  8. 【转】WPF/Silverlight开发的15个最佳实践
  9. 【异或】LeetCode 137. Single Number II
  10. Leetcode 983.最低票价