2018年系列之设计模式汇总贴
转眼间已经进入了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年系列之设计模式汇总贴相关推荐
- tensorflow-yolo3系列配置文章汇总
tensorflow-yolo3系列配置文章汇总 yolo 网络讲解 https://blog.csdn.net/m0_37192554/article/details/81092514 https: ...
- 前端每日实战 2018 年 9 月份项目汇总(共 26 个项目)
过往项目 2018 年 8 月份项目汇总(共 29 个项目) 2018 年 7 月份项目汇总(共 29 个项目) 2018 年 6 月份项目汇总(共 27 个项目) 2018 年 5 月份项目汇总(共 ...
- 炒冷饭系列:设计模式 单例模式
2019独角兽企业重金招聘Python工程师标准>>> 炒冷饭系列:设计模式 单例模式 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆 ...
- 深入学习图数据库语言Gremlin 系列文章链接汇总
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/javeme/article/detai ...
- 荣耀 MagicBook 系列新品发布会汇总:多款锐龙本、平板电脑登场~~~
7 月 16 日消息,今天下午荣耀举行 MagicBook 系列新品发布会,发布了多款搭载锐龙 4000 系列处理器的 MagicBook 轻薄本以及新款荣耀平板. 首先是 MacgicBook Pr ...
- 2018年中考计算机考试成绩,2018年中考录取分数汇总,35所初中考成绩看2019中考!...
原标题:2018年中考录取分数汇总,35所初中考成绩看2019中考! 2018年录取分数线 2018年初中成绩 现在家长还不知道怎么根据孩子的成绩来估计以后中考会怎么样,那就看看今年各个初中学校考的怎 ...
- 西门子博途v16系统要求_【技成周报30期】西门子系列常见问题答疑汇总
更多精彩,请点击上方蓝字关注我们!西门子S7-200SMART PLC问题▲▲▲ 问:STEP 7-MicroWIN SMART编程软件当中符号表地址I0.0下面红色波浪线是什么原因? 答:说明该地址 ...
- 2018山东计算机录取分数,【分数线】2018山东省公费师范生分数线汇总
原标题:[分数线]2018山东省公费师范生分数线汇总 日前,山东省教育厅.山东省卫生健康委员会.山东省农业农村厅等三部门发布了<关于做好2019年公费生及委培师范生招生工作的通知>. 全省 ...
- Adobe系列安装问题汇总,遇到这些问题该怎么办
在使用电脑的时候,Adobe系列软件用到几率还是比较大的,但是在安装Adobe软件时,总是提示各种安装错误就非常头疼了,下面小编为大家带来官方提供的Adobe错误代码对照表及解决方案,快来看看你有没有 ...
最新文章
- python如何判断两个数组完全相等?
- zookeeper做分布式锁
- ASP+COM 组件开发
- SAP Analytics Cloud里取出SAP Cloud for Customer的Reports列表
- Codeforce 1255 Round #601 (Div. 2) A. Changing Volume (贪心)
- 机器学习笔记(二十)——求解最大熵模型
- 软件测试的含义以及测试的对象
- linux 内核源码学习
- python遇到异常跳过_教你使用Python遇到的异常的处理方式!
- Mac电脑共享“公共文件夹”以外的文件夹的设置教程
- 常微分方程组及高阶常微分方程的数值解法
- 获取百度网盘直链下载链接的方法
- SNF开发平台WinForm-EasyQuery统计分析-效果-非常牛逼的报表查询工具
- 思维导图训练孩子逻辑思维能力的方法
- 数据库连接在哪?数据库连接池
- 你知道CAD看图软件浩辰CAD看图王中的批注如何删除/保存吗?
- 论文阅读:日志聚合 - 关联分析
- javascript中的原型与原型链
- Linux ps -A 和 ps -ef
- 最新《煤矿井下人员定位系统安全标志管理方案(试行)》等通知,助力煤矿新进程
热门文章
- python 读取文本文件_如何在Python中读取大文本文件
- Java基础之字符如何截取?
- 《网络攻防第六周作业》
- 18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集群
- C# Winform编程ListBox之DrawItem事件
- 【Codeforces811E】Vladik and Entertaining Flags [线段树][并查集]
- 在OL6.5_64上安装Oracle11gR2_64
- 【转】WPF/Silverlight开发的15个最佳实践
- 【异或】LeetCode 137. Single Number II
- Leetcode 983.最低票价