java程序设计六大原则
一、单一职责原则(single responsibility principle)简称SRP原则
一个接口或者类只有一个原因引起变化,即一个接口或者类只有一个职责,负责一件事情。(此原则同样适用于方法)
好处:
1、复杂性降低;2、可读性提高;3、可维护性提高;4、变更风险降低
二、里氏替换原则:父类能出现的地方子类就可以出现
定义解释:
1、子类必须完全实现父类的方法;
2、子类可以有自己的个性;
3、覆盖或者实现父类的方法时,输入参数可以被放大;
public class Father {undefined
public Collection doSomething(HashMap map) {undefined
System.out.println("父类被执行了");
return map.values();
}
}
public class Son extends Father {undefined
public Collection doSomething(Map map) {undefined
System.out.println("子类被执行了");
return map.values();
}
}
public static void main(String[] args) {undefined
Father father = new Father();
Son son = new Son();
HashMap<Object,Object> map = new HashMap<>();
father.doSomething(map);
son.doSomething(map);
}
以上代码执行时,子类重载了父类的doSomething方法,并且放大输入参数Hashmap→Map,执行以后,出现相同的结果,
均输出"父类被执行了",并没有歪曲父类的意图,不会引起业务逻辑混乱,符合里氏替换原则。
4、覆写或者实现父类的方法时,输出结果可以被缩小;
三、依赖倒置原则:
1、高层不应该依赖底层,两者都应该依赖其抽象;
2、抽象不应该依赖细节,细节应该依赖抽象;
即模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的。
更加简单的定义就是"面向接口编程(OOD:Object-Oriented Design)"
四、接口隔离原则
定义解释:
1、接口要尽量小
2、接口要高内聚,高内聚就是尽量减少公布public方法
3、接口要为个体提供定制服务,即只提供访问者需要的方法
4、接口设计是有限度的
通俗的讲,接口尽量细化,同时接口中的方法尽量少。
说明:单一职责原则侧重于业务逻辑,即职责尽量少;而接口隔离原则侧重于接口中的方法尽量少。
五、迪米特法则
也称为最少知识原则:一个对象应该对其他对象有最少的了解。通俗的讲:一个类应该对自己需要耦合或者调用的类知道的越少越好
六、开闭原则
软件实体应该对扩展开放,对修改关闭。就是说应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。
java程序设计六大原则相关推荐
- Java 设计模式六大原则
Java 设计模式六大原则 单一职责原则 定义:不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责. 问题由来:类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而 ...
- java设计模式六大原则之场景应用分析
面对项目中如此众多的设计模式,我们有时候无法 下手.在强大的设计框架也终脱离不了23种设计模式,6大原则.我们只要把内功修炼好,掌握其精髓也离我们不远了... 目录: 设计模式六大原则(1):单一职责 ...
- 面向对象程序设计六大原则
面向对象程序设计中,需要遵守的原则可总结为6个,这就是大名鼎鼎的六大原则.面向对象程序设计原则也是我们用于评价一个设计模式的重要指标之一.在设计模式中,很多设计模式都遵守了这些原则. 单一职责原则(S ...
- 程序设计六大原则-概况与举例
总结设计原则其实很早以前就在想了,但是起初我认为固定的原则会局限人的创新思维,陈旧的定律不一定是最好的.实际上随着代码量的沉积,你会发现无形之中你的程序设计会和这六大原则不谋而合.大道至简,前人走过的 ...
- java代码优化六大原则
单一职责 代码优化第一步,单一职责原则 (Single Responsibility Principle).对于一个java类,应该仅有一个引起它变化的原因,也就是说,一个类中,应该是一组相关性很高的 ...
- java 设计原则_【无尽的编程之路】(java)-设计模式六大原则
本文主内容主要是列出各项原则的定义与本人对六大原则的感悟.写出来的目是想与大家分享与讨论.正如有句话叫做一千个读者眼中有一千个哈姆雷特,如果大家对这六项原则的理解跟我有所不同,欢迎留言,大家共同探讨. ...
- Java基础学习总结(84)——Java面向对象六大原则和设计模式
面向对象六大原则 在此之前,有一点需要大家知道,熟悉这些原则并不是说你写出的程序就一定灵活.清晰,只是为你优秀的代码之路铺上了一层栅栏,在这些原则的指导下,你才能避免陷入一些常见的代码泥沼,从而让你写 ...
- Java设计六大原则
1.遵循单一职责原则 一个类只专注于做一件事: 高内聚,低耦合: 2.开放-封闭原则 对拓展开放,对修改关闭(尽可能不动原有代码进行拓展): 高内聚,低耦合: 为达到目的,需对系统进行抽象化设计(关键 ...
- JAVA设计模式六大原则:(5)迪米特法则
1 定义 迪米特法则定义:一个对象应该对其他对象保持最少的了解. 2 描述 问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大. 解决方案:尽量降低类与类之间的耦 ...
- 设计模式六大原则总结------备忘
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可.http://www.zuox ...
最新文章
- R语言plot函数可视化、ggplot2可视化把图像标题(title)的部分内容着色实战:标题的部分内容配置不同的色彩、副标题(subtitle)的内容配置不同的色彩
- List查询排序删除泛型 应用
- cocos2d-js 3.0 RC0 监听返回键、菜单键、进入后台(home键)、恢复显示等事件
- mysql主从日志的定期清理
- 业务总结002:秒杀活动架构设计
- 应用市场高速下载以及网页端调起APP页面研究与实现
- 3、数据类型一:strings
- 代码添加ProgressBar 进度条
- hessian spring实例整合
- Android成长日记-使用GridView显示多行数据
- 关于swift中的懒加载
- 手机版计算机音乐,计算机音乐手机版
- 210920-车站问题
- 【matlab图像处理】图像处理工具箱(1)
- Python绘制计算机CPU占有率变化的折线图
- linux 桌面背景图,linux常用命令桌做成的桌面图片,可当背景图片
- UE4 3DUI Widget半透明渲染模糊和重影问题
- Microsoft编写优质无错C程序秘诀
- 20145212罗天晨 恶意代码分析
- Uos统信系统 本地APT源配置
热门文章
- 计算机安全意识小故事,安全故事精选5篇
- 谈论bringup我们到底在谈论什么?
- 使用Certbot申请ssl证书
- thrift linux java,解决Linux下安装thrift出现的Building Java Library ........ : no问题(以及其他安装thrift出现的问题)...
- 视频结构化——原子能力解析
- 时间去哪儿了?--读《时间简史》有感
- matlab中min函数
- VINS-Mono 理论详细解读——紧耦合后端非线性优化 IMU+视觉的残差residual、Jacobian、协方差、基于舒尔补的边缘化
- 从今天开始,每天做一件有意义的事,有进步的事
- 实验十三——DD和S-MAC协议仿真实验