java 设计原则_【无尽的编程之路】(java)-设计模式六大原则
本文主内容主要是列出各项原则的定义与本人对六大原则的感悟。写出来的目是想与大家分享与讨论。正如有句话叫做一千个读者眼中有一千个哈姆雷特,如果大家对这六项原则的理解跟我有所不同,欢迎留言,大家共同探讨。
1 单一职责原则
定义:就一个类而言,应该仅有一个引起它变化的原因。应该只有一个职责。
类和方法的职责要单一,不要把不同的业务逻辑放在同一个类里面(或同一个方法里面)。
2 迪米特法则(最少知道原则):
定义:一个对象应该对其他对象保持最少的了解。
降低耦合,一个类尽可能的减少依赖。依赖越少越好。
3 里氏替换原则
定义:派生类(子类)对象可以在程式中代替其基类(超类)对象。
不要破坏类的基层体系。扩展父类的时候,不要去覆盖父类的非抽象方法;尽量去拓展,而不是去覆盖;
4 依赖倒置,面向接口编程;尽可能的通过接口去依赖
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
面向接口编程;尽可能的通过接口去依赖;
5 接口隔离原则:
定义:客户端不应该依赖它不需要的接口。一个类对另一个类的依赖应该建立在最小的接口上。
接口尽可能的精简,单一。尽量细化接口,暴露的东西越少越好。(接口中的方法尽量少。也就是说,我们要为各个类建立专用的接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。)
6 开闭原则:
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
开闭原则是前5个原则的综合得分体现,前五个原则遵守得好,那么设计出来的软件自然是符合开闭原则的,如果前面5项原则遵守得不好,说明开闭原则遵守的不好。
总结:设计模式实际上表达的是这样子的一种思想:用抽象构建架构,用实现拓展细节。
因为抽象灵活性高,适用性广,因此用抽象来构建架构可以保持软件的稳定(前提是要抽象得合理)。而软件中的细节,我们用从抽象类中派生出来的实现类来进行拓展,当软件需求发生改变时,我们只需要根据需求重新派生新的实现类来进行拓展就行。
单一职责告诉我们类的职责要单一。迪米特法则告诉我们要降低耦合。里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们接口在的设计的时候要精简,单一;而开闭原则是像是总纲,他告诉我们要对扩展开放,对修改关闭。
java 设计原则_【无尽的编程之路】(java)-设计模式六大原则相关推荐
- java设计模式六大原则之场景应用分析
面对项目中如此众多的设计模式,我们有时候无法 下手.在强大的设计框架也终脱离不了23种设计模式,6大原则.我们只要把内功修炼好,掌握其精髓也离我们不远了... 目录: 设计模式六大原则(1):单一职责 ...
- Java设计模式(二)简单工厂模式—设计模式六大原则
文章目录 设计模式六大原则 1. 开闭原则 2. 里氏代换原则 3. 依赖倒转原则 4. 接口隔离原则 5. 迪米特法则(最少知道原则) 6. 合成复用原则 工厂设计模式 什么是工厂模式 工厂模式的好 ...
- 软件设计模式六大原则
设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大 ...
- Java 设计模式六大原则
Java 设计模式六大原则 单一职责原则 定义:不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责. 问题由来:类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而 ...
- 设计模式六大原则-java复读记录
设计模式六大原则-java复读记录 内容总览 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则 开闭原则 设计模式 参考文献 内容总览 单一职责原则 里氏替换原则 依赖倒置原则 接口 ...
- python里氏替换原则_设计模式六大原则之里氏替换原则
这是设计模式6 大原则系列的第二篇文章,附上前一篇文章地址:设计模式六大原则之单一职责原则.本文主要讲解设计模式的里氏替换原则. 肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑.其 ...
- PHP 设计模式六大原则
http://www.cnblogs.com/yujon/p/5536118.html 设计模式六大原则(1):单一职责原则 不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责 设计模 ...
- 设计模式六大原则之--开闭原则(OCP)
设计模式六大原则之--开闭原则(OCP) 前言 1 描述 2 理解: 3 问题由来: 4 使用LoD的好处: 5 难点: 6 最佳实践: 7 范例: 前言 The Open - Closed Prin ...
- 设计模式六大原则之里氏替换原则、依赖倒置原则详解
设计模式六大原则--里氏替换原则.依赖倒置原则详解 1.里氏代换原则(Liskov Substitution Principle) 概念 顾名思义,该原则用于经常发生替换的地方,在Java中指的是实现 ...
- 设计模式六大原则及常用模式详解
设计模式六大原则 1.单一职责原则(Single Responsibility Principle) 定义 : 应该有且只有一个原因引起类的变化 注意 : 这里的类不光指类,也适用于方法和接口,比如我 ...
最新文章
- 在安装和使用Oracle过程中可能遇到的困难及其相应的解决措施
- SD-WAN将成为物联网部署中的骨干网—Vecloud
- python微信自动打卡_「微信辅助」吃鸡再也不怕了,Python用wxpy实现微信自动回复...
- 牛X,试用了下GitHub上22万Star的第一抢票神器,3秒钟抢到!
- 【十万个编程篇】写文章与“写项目”的差别
- django设置models.Model数据可以为空
- Linux格式化为物理卷,使用linux的pvs命令格式化输出物理卷信息报表
- 基于C#的socket编程的TCP异步实现
- c语言中不带任何修饰符的浮点常量是按,C语言练习题参考答案
- linux网络通讯架构实战篇【02、nginx整体结构、进程模型】
- 基于SSM框架的毕业设计管理系统 毕业设计-附源码211633
- 颜值为王 美图M8成京东618新机好评榜最大黑马
- Invalid watch source: undefined A watch source can only be a getter/effect function, a ref, a react
- 百度云网盘批量分享独立链接,简单暴力!!! 不用下载软件,直接在网页上搞定!
- [原创]中国象棋翻翻棋,休闲,对战,娱乐,小游戏,jQuery小游戏,下载即用,代码注释全(附源码)
- cisco配置主机计算机连接,Cisco交换机配置新手篇:正确连接和初级配置
- 域用户如何批量修改服务器时间,如何批量修改word中的域
- QT+opencv实现简单的图像处理界面
- 如何零基础学习解析几何
- 多边形内角和c语言编程,初二年级奥数多边形的内角和试题及答案
热门文章
- 每日一皮:这真的是亲爹吗...
- 每日一皮:进来说说昨天你是怎么过的?
- 不敢相信?System.currentTimeMillis()存在性能问题
- css文字背景虚化,通过实现背景模糊、文字颜色流光渐变、边框扩展等效果学习transition、transform、@keyframes等属性及伪元素的使用...
- C语言32位数加一精简,一个简单的32位多任务操作系统的实现(1)
- 帝国cms微信小程序多语言相亲交友制作记录难点使用的小程序组件分析
- save_path is not a valid checkpoint
- Parse error. Expected a command name
- python 点计算角度
- ubuntu nano用法