单一职责原则 英文名称Single Responsibility Principle  缩写SRP 定义:就一个类而言,应该仅有一个引起它变化的原因。简单的说,一个类中应该是一组相关性很高的函数、数据的封装。

开闭原则 英文全称是Open Close Principle 缩写 OCP,它是Java世界里最近出的设计原则,它知道我们如何建立一个稳定的、灵活的系统。开闭原则的定义:软件中的对象(类、模块、函数等)应该对与扩展开放的,但是对于修改时封闭的。也就是说,当软件需要变化时,我们应该尽量通过扩展的方式来实现变化,而不是通过修改已有的代码来实现。

里氏替换原则 英文全称 Liskov Substitution Principle,缩写是LSP  如果对每一个类型为S的对象O1,都有类型为T的对象O2,使得以T定义的所有程序P在所有的对象O1都代换成O2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。    这个定义可能不好理解,所以我们看一下第二种定义:所有引用积累的地方都必须能透明的地使用其子类的对象。通俗的讲,只要弗雷能出现的地方子类就可以出现,而且替换为子类也不会产生任何的错误或异常,但是反过来就不行了。说了那么多总结起来就是两个字:抽象  历史替换原则的核心原理是抽象,抽象又依赖于继承这个特性,在OOP当中,继承的优缺点都相当明显。优点:

(1)代码重用,减少创建类的成本,每个子类都拥有父类的方法和属性。

(2)子类与父类基本相似,但又与父类有所区别。

(3)提高代码的可拓展性

依赖倒置原则 英文全称是Dependence Iversion Principl,缩写 DIP。依赖倒置原则指代一种特定的解耦形式,使得高层次的模块不依赖于低层次模块的实现细节的目的,依赖模块被颠倒了。

依赖倒置原则有以下几个关键点:

(1)高层次模块不应该一路来底层模块,两者都应该依赖其抽象。

(2)抽象不应该依赖细节

(3) 细节应该以来抽象

在java语言中,抽象就是接口或抽象类,两者都是不能直接被实例化的;细节就是实现类,实现接口或继承抽象类而产生的类就是细节,其特点就是,可以被直接实例化。高层某块就是调用端,低层模块就是具体实现类。依赖倒置原则在java语言中表现就是:模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其以来关系是通过接口或抽象类产生的。 其实一句话就可以概括:面向接口编程,或者说是面向抽象编程。这里的抽象指的是接口或抽象类。面向接口编程是面向对象精髓之一。

如果类与类直接依赖于细节,那么它们之间就有直接的耦合,当具体实现需要变化时,意味着要哦同时修改依赖者的代码,这限制了系统的可拓展性。

接口隔离原则 英文全称是 InterfaceSgregation Principles ,缩写是ISP :客户端不应该以来它不需要的接口。另一种定义是:类间的依赖关系应该建立在最小的接口上。接口隔离原则将非常庞大、臃肿的接口拆分成更小的和更具体地接口,这样客户将会只需要知道他们感兴趣的方法。接口隔离原则的目的是系统接口耦合,从而容易重构、更改和重新部署。接口隔离原则收哦白了就是,让客户端依赖的接口尽可能地小。

迪米特原则英文称:Law of Demeter  缩写 LOD ,也称为最少知识原则 :一个对象应该对其他对象有最少的了解。通俗的讲,一个类应该对自己需要耦合合伙调用的类知道得最少,类内部如何实现与调用者或者依赖者没关系,调用者或者依赖者只需要知道它需要的方法即可,其他的可一概不用管。类与类之间的关系越密切,耦合度越大,当一个发生改变时,对另一个类的影响也越大。迪米特原则还有一个英文解释是  Only taik to your immedate friends 翻译过来就是:只与直接的朋友通信。

设计原则

设计模式

23种设计模式设计原则相关推荐

  1. 【Java 23 种设计模式】原则(1)

    原则 设计模式的来源 设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路.它不是语法规定,而是一套用来提高代码可复用性.可维护性.可读性.稳健性以及安全性 ...

  2. 23种设计模式-单一原则

    一.设计模式的目的 1) 代码重用性 (即:相同功能的代码,不用多次编写) 2) 可读性 (即:编程规范性, 便于其他程序员的阅读和理解) 3) 可扩展性 (即:当需要增加新的功能时,非常的方便,称为 ...

  3. java七大设计原则,23种设计模式

    点击查看七大设计原则,23种设计模式 其中 简单工厂.工厂方法.抽象工厂 三种工厂模式中的工厂类的作用基本都是:根据传入的参数创建对应的对象,如果创建的种类太多,那么 简单工厂要写很多 if - el ...

  4. Java的7大设计原则和23种设计模式

    目录 一.UML类图 二. 设计原则 1.单一职责原则 2.里氏替换原则 3.依赖倒置原则 4.接口隔离原则 5.迪米特法则-最少知道原则 6.开闭原则 7.组合/聚合复用原则 三.Java中的23 ...

  5. 学习6大设计原则、23种设计模式

    了解设计模式的朋友们,想必都听说过"六大设计原则"吧.其实最经典的 23 种设计模式中或多或少地都在使用这些设计原则,也就是说,设计模式是站在设计原则的基础之上的.所以在学习设计模 ...

  6. JAVA六大设计原则 和 23种设计模式

    相关书籍:<大话设计模式>.<Java设计模式>.<设计模式之禅>.<研磨设计模式>.<Head First 设计模式> JAVA六大设计原 ...

  7. 软件开发设计思想与6大软件设计原则、23种设计模式目录-设计模式

    目录 1.软件开发设计指导思想: (1)可维护性Maintainability (2)可复用性Reusability (3)可扩展性Extensibility/Scalability (4)灵活性fl ...

  8. 面向对象设计原则与23种设计模式

    面向对象概述 1.万物皆对象(Java反射原理-都是借助java.lang.class这个对象的属性.定义等实现) 2.面向对象的特征:封装(对象之间的隔离性.对象内部的属性封装).继承(类的重用,耦 ...

  9. java外围设计_Java 编程(23 种设计模式)

    简介 在一般的程序开发过程中,初中级程序员接触的程序设计模式是比较少的.最常见的可能就是单例模式.工厂模式.抽象工厂模式等等,但实际上程序中的设计模式是非常多的,具体可以分为 23 种设计模式.设计模 ...

  10. 实践GoF的23种设计模式:SOLID原则(上)

    本文分享自华为云社区<实践GoF的23种设计模式:SOLID原则(上)>,作者:元闰子. 前言 从1995年GoF提出23种设计模式到现在,25年过去了,设计模式依旧是软件领域的热门话题. ...

最新文章

  1. CORS跨域实现思路及相关解决方案
  2. kettle、Oozie、camus、gobblin
  3. kettle中job给转换配置相对路径
  4. Apache Flink 在实时金融数据湖的应用
  5. Oracle-13:Oracle中的表分区
  6. 【 ORA-27102: out of memory处理】
  7. 勇敢一次_开放网络需要勇敢的新英雄吗?
  8. 计算机申报专业怎么写,给申请计算机专业的学生的建议
  9. redis3.0搭建分布式集群
  10. JS获取浏览器滚动条的宽度
  11. ubuntu开机自动关闭独显,使用集成显卡
  12. 干货:资深架构师教你一篇文看懂Hadoop
  13. OSX: Scripts,让BootCamp在不论什么Mac上支持生成Windows7的USB安装盘
  14. 基于ISO7637的车载电源系统设计
  15. 死磕 Java8 新特性,17 种日期处理方式!
  16. 十大进销存软件排行榜 免费进销存软件推荐 进销存软件什么好用
  17. c语言程序设计题答案,C语言程序设计习题(含答案).doc
  18. Elastic控制查询精准度-minimum_should_match
  19. 【matlab图像处理】图像处理工具箱(2)
  20. HDU 2121 Ice_cream’s world II (最小树形图+虚根)

热门文章

  1. 基于matlab的信号频谱分析 开题报告,基于MATLAB的数字信号处理开题报告
  2. EP100触发CAN中断但无法读取报文
  3. 第五代通信技术简单概述
  4. setup factory的命令行打包
  5. 通用浏览器插件技术概况与分析
  6. 如何对CAD中的曲线进行测量?
  7. linux目录结构全解,Linux目录结构详解(最全最详细版)
  8. MongoDB数据库可视化工具
  9. JTAG Pin脚定义及要求
  10. Redis 官方可视化工具,功能真强大