23种设计模式设计原则
单一职责原则 英文名称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种设计模式设计原则相关推荐
- 【Java 23 种设计模式】原则(1)
原则 设计模式的来源 设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路.它不是语法规定,而是一套用来提高代码可复用性.可维护性.可读性.稳健性以及安全性 ...
- 23种设计模式-单一原则
一.设计模式的目的 1) 代码重用性 (即:相同功能的代码,不用多次编写) 2) 可读性 (即:编程规范性, 便于其他程序员的阅读和理解) 3) 可扩展性 (即:当需要增加新的功能时,非常的方便,称为 ...
- java七大设计原则,23种设计模式
点击查看七大设计原则,23种设计模式 其中 简单工厂.工厂方法.抽象工厂 三种工厂模式中的工厂类的作用基本都是:根据传入的参数创建对应的对象,如果创建的种类太多,那么 简单工厂要写很多 if - el ...
- Java的7大设计原则和23种设计模式
目录 一.UML类图 二. 设计原则 1.单一职责原则 2.里氏替换原则 3.依赖倒置原则 4.接口隔离原则 5.迪米特法则-最少知道原则 6.开闭原则 7.组合/聚合复用原则 三.Java中的23 ...
- 学习6大设计原则、23种设计模式
了解设计模式的朋友们,想必都听说过"六大设计原则"吧.其实最经典的 23 种设计模式中或多或少地都在使用这些设计原则,也就是说,设计模式是站在设计原则的基础之上的.所以在学习设计模 ...
- JAVA六大设计原则 和 23种设计模式
相关书籍:<大话设计模式>.<Java设计模式>.<设计模式之禅>.<研磨设计模式>.<Head First 设计模式> JAVA六大设计原 ...
- 软件开发设计思想与6大软件设计原则、23种设计模式目录-设计模式
目录 1.软件开发设计指导思想: (1)可维护性Maintainability (2)可复用性Reusability (3)可扩展性Extensibility/Scalability (4)灵活性fl ...
- 面向对象设计原则与23种设计模式
面向对象概述 1.万物皆对象(Java反射原理-都是借助java.lang.class这个对象的属性.定义等实现) 2.面向对象的特征:封装(对象之间的隔离性.对象内部的属性封装).继承(类的重用,耦 ...
- java外围设计_Java 编程(23 种设计模式)
简介 在一般的程序开发过程中,初中级程序员接触的程序设计模式是比较少的.最常见的可能就是单例模式.工厂模式.抽象工厂模式等等,但实际上程序中的设计模式是非常多的,具体可以分为 23 种设计模式.设计模 ...
- 实践GoF的23种设计模式:SOLID原则(上)
本文分享自华为云社区<实践GoF的23种设计模式:SOLID原则(上)>,作者:元闰子. 前言 从1995年GoF提出23种设计模式到现在,25年过去了,设计模式依旧是软件领域的热门话题. ...
最新文章
- CORS跨域实现思路及相关解决方案
- kettle、Oozie、camus、gobblin
- kettle中job给转换配置相对路径
- Apache Flink 在实时金融数据湖的应用
- Oracle-13:Oracle中的表分区
- 【 ORA-27102: out of memory处理】
- 勇敢一次_开放网络需要勇敢的新英雄吗?
- 计算机申报专业怎么写,给申请计算机专业的学生的建议
- redis3.0搭建分布式集群
- JS获取浏览器滚动条的宽度
- ubuntu开机自动关闭独显,使用集成显卡
- 干货:资深架构师教你一篇文看懂Hadoop
- OSX: Scripts,让BootCamp在不论什么Mac上支持生成Windows7的USB安装盘
- 基于ISO7637的车载电源系统设计
- 死磕 Java8 新特性,17 种日期处理方式!
- 十大进销存软件排行榜 免费进销存软件推荐 进销存软件什么好用
- c语言程序设计题答案,C语言程序设计习题(含答案).doc
- Elastic控制查询精准度-minimum_should_match
- 【matlab图像处理】图像处理工具箱(2)
- HDU 2121 Ice_cream’s world II (最小树形图+虚根)