
【设计模式之禅】六大原则的解读
发布日期:2021-05-10 05:48:21
浏览次数:24
分类:精选文章
本文共 1108 字,大约阅读时间需要 3 分钟。
六大原则的解读
1. 单一职责原则
解释
单一职责原则(Single Responsibility Principle)要求一个类或接口只能有一个原因引起变化。简单来说,就是一个接口或类只负责一件事。它的核心思想是保持类和接口的职责单一。
优点
- 降低类的复杂性,使其更易于理解和维护。
- 提高可读性和可维护性。
- 减少出错风险。
实践
- 尽量让接口拥有单一职责。
- 类的设计时,确保它只做一件事。
- 遵守这一原则有时较为困难,但建议优先使接口遵循单一职责。
2. 里氏替换原则
解释
里氏替换原则(Liskov Substitution Principle)规定,使用引用或引用类型访问基类时,必须能够无 Fraction 知晓地使用其子类对象。直白地说,就是父类的地方可以用子类替换,但反过来却不可行。
实践
- 为避免子类特有的方法和属性暴露,尽量避免在基类中使用子类的特定方法或属性。
- 保持子类的独立性,避免将其与基类耦合过度。
3. 依赖倒置原则
解释
依赖倒置原则(Dependence Inversion Principle)强调,高层模块不应直接依赖低层模块,而是通过抽象对象间接依赖。同时,高层建立在抽象之上,细节不应直接依赖抽象,而是反过来依赖。
Java体现
- 模块间依赖通过接口或抽象类实现,不直接依赖实现类。
- 实现类只依赖接口或抽象类。
实践
- 类尽量有接口或抽象类成员。
- 磁变类型为接口或抽象类。
- 避免直接继承具体实现类。
- 避免重写父类方法,尽量选择实现接口的方式。
4. 接口隔离原则
两种接口类型
- 实例接口:描述具体的对象类型,通常由实例构成。
- 类接口:描述类的公共功能,建立在最小的接口上。
与单一职责原则的区别
- 单一职责强调职责单一,注重业务逻辑划分。
- 接口隔离则强调接口方法尽量最少。
实践
- 用于单一子模块或业务逻辑。
- 压缩过模块已含的接口。
- 不可随意修改已污染的接口,可采用适配器模式。
- 深入了解业务逻辑,才能设计出好的接口。
5. 迪米特法则
解释
迪米特法则(Law of Demeter)或最少知识原则,指两个对象间只应通过朋友通信,朋友间保持一定距离,不要暴露过多方法。
实践
- 设计对象间耦合:仅与直接相关的对象交互。
- 考虑跳转类来拉低耦合度。
- 适度应用,避免过度。
6. 开闭原则
(重点)
解释
开闭原则要求软件实体如类、模块和函数对扩展开放,对修改关闭。通过扩展实现变化,而非修改现有代码。
实践
- 通过接口或抽象类约束变化,提供扩展的可能性。
- 控制模块行为,利用配置参数或接口以决定行为。
- 制定详细项目章程。
- 封装变化,使用接口或抽象类。
通过遵循开闭原则,设计高效灵活的系统结构。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年05月05日 09时18分02秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LeetCode: 138. 复制带随机指针的链表(中等)[DFS, 迭代]
2019-03-12
Effective Java 读书笔记
2019-03-12
SpringBoot使用@Email报错误
2019-03-13
Rabbitmq的内存磁盘监控
2019-03-13
访问servlet时弹出文件下载框解决方法
2019-03-13
cookie、session、token
2019-03-13
IDEA-@Slf4j和log标签&@Data(Lombok)无效
2019-03-13
Thymeleaf 生成下标,索引,使用Stat变量
2019-03-13
全局变量初始化顺序的不确定性引发的bug
2019-03-13
ValueError: Unexpected end of file.
2019-03-13
六、登录(二)
2019-03-13
初始微服务---Springcloud发展【第一期】
2019-03-13
RAFT 拜占庭将军 共识算法
2019-03-13
UE4 错误列表 error码(只记录我遇到的情况,持续添加,未完成)
2019-03-13
【Jquery】获取当前窗口的宽度值/高度值
2019-03-13
Android 架构组件 – 让天下没有难做的 App
2019-03-13
启动MongoDB出现1053错误
2019-03-13