七大软件设计原则

开闭原则

软件中的实体(如类/模块/函数应该) 对扩展开发、对修改关闭;

实现方式:用抽象构建框架,用实现扩展细节;(面向抽象编程,用继承扩展)

好处:提高系统可复用性/可维护性。

依赖倒置

高层模块不依赖低层模块,二者都应该依赖其抽象。

实现:抽象不依赖细节,接口编程替代实现编程

好处:降低类之间的耦合和修改带来的风险,提高系统稳定性、可读性/可维护性

单一职责

一个类、接口、方法只负责一个功能职责

降低类的复杂度和修改引发的风险,提高可读性/可维护性

接口隔离原则

用多个专门接口,而不是只依赖一个总接口;不依赖不需要的接口;接口中方法尽量少(适度原则);一个类依赖最小的那个接口

好处:高内聚/低耦合,使类具有更好的可读性/可维护性/可扩展性

在单一原则的基础上才能进一步作出接口隔离原则

迪米特法则(最少知道原则)

一个对象对其他对象保持最少了解

只和朋友说话不与陌生人交流:出现在类中的成员变量、方法输入输出参数中的类为朋友类,方法体内部的不属于朋友类

降低类之间的耦合,提高系统安全性

里氏替换原则

子类只是扩展了父类,而不是改变了父类原有的功能,因此子类对象可以替换父类对象;

一个软件实体(类/接口/方法等)适用某个父类的话,也一定适用其子类;

引用父类的地方能透明的使用子类的对象;

子类对象能替换父类对象而程序逻辑不变;

引申:(使用继承的规范,也可以理解是Java的语法规范)

子类可以实现父类抽象方法,但不能覆盖非抽象方法;

子类中可以增加自己的特有方法;

子类重载父类方法时,输入参数更宽松;

子类实现(重载/重写/实现抽象方法)父类方法时,输出/返回值比父类更严格。

好处:约束继承、杜绝泛滥,减少变更时引入风险,加强程序健壮性和兼容性,提高可维护性和扩展性

合成复用原则

尽量使用组合/聚合,而不是继承关系达到软件复用的目的。

降低类之间的耦合,增加系统灵活性。

什么叫组合:各部分放到一起相互依赖才能起作用,有共同的生命周期。

什么叫聚合:每个部分单独也能工作,聚拢到一起完成新功能。

相关推荐
卓怡学长3 分钟前
w273基于springboot的智能笔记的开发与应用
java·spring boot·spring·intellij-idea
剑挑星河月28 分钟前
234. 回文链表
java·数据结构·算法·leetcode·链表
plainGeekDev37 分钟前
Gradle 写法 → Kotlin DSL
android·java·kotlin
RainCityLucky1 小时前
Java Swing 自定义组件库分享(十三)
java·笔记·后端
无限的鲜花9 小时前
反射(原创推荐)
java·开发语言
IT二叔10 小时前
Java项目部署-03-teamcity-cicd-docker镜像流水线方式部署
java·ci/cd·持续部署
一路向北he10 小时前
字节钢铁军团--“提供情境,而非控制”
java·开发语言·前端
超级数据查看器10 小时前
超级数据查看器 v10.0 发布
java·大数据·数据库·sqlite·安卓
折哥的程序人生 · 物流技术专研11 小时前
《Java 100 天进阶之路》第50篇:阻塞队列与并发容器(2026版)
java·面试题·java进阶·blockingqueue·并发容器·集合源码·java100天进阶
ai_coder_ai12 小时前
编写自动化脚本,在自己后端服务中使用Open Api进行设备相关操作
java·运维·自动化