博客
关于我
设计模式-软件设计规则
阅读量:538 次
发布时间:2019-03-09

本文共 1080 字,大约阅读时间需要 3 分钟。

软件设计原则是软件开发中提高系统可维护性和复用性的重要指导依据。通过遵循这些原则,开发者能够在实现现有需求的同时,为未来的扩展和维护创造条件,从而提升效率和降低成本。

1. 开闭原则

"对扩展开放,对修改关闭",这意味着程序在需要进行功能扩展时,可以通过新增模块或引入接口实现,而无需修改现有的代码。这种设计让系统具有更强的灵活性和可维护性。

要实现开闭原则,开发者通常会采用接口和抽象类。抽象类通过抽象方法定义通用接口,而具体实现由子类通过多态机制来提供。这种设计不仅让系统结构更加稳定,还能通过合理抽象将易变之处封装起来,便于进行扩展和升级。

2. 里氏代换原则

里氏代换原则是面向对象编程中核心理念之一。它的表述是:"任何基类可以出现的地方,子类也可以出现"。简单来说,子类可以在不改变基类功能的情况下,通过重新方法实现新的特性或功能。

这种设计规则强调继承时要尽量避免重写父类方法。虽然用父类的方法直接实现新功能在开发上操作简便,但从长远来看,这样可能导致继承体系的复杂性增加,影响系统的可维护性和可扩展性。

3. 依赖倒转原则

这一原则强调的是建立清晰的抽象与依赖关系,使高层模块与低层模块的耦合度降低。具体来说,高层模块不应直接依赖具体实现模块,而应该依赖与其功能相关的抽象接口。

依赖倒转不仅降低了模块间的耦合度,还允许应用程序的不同模块可以通过不同的实现组件来运行。这种设计让系统更加灵活,同时也有助于降低依赖关系链中的潜在风险。

4. 接口隔离原则

"要使用你不需要的功能就不要引入依赖",这是一种强调模块间最大化抽象化的原则。复杂的大功能接口可以拆解为多个独立的接口,从而保障客户端只关注其直接需求。

接口隔离不仅让系统更加灵活,还能显著降低设计和使用过程中的复杂性。通过合理拆分接口,可以让各个模块之间的交互更加清晰,提高系统的可维护性。

5. 迪米特法则

这又被称为"最少知识原则"。其核心思想是对象之间应该保持最小的必要信息交流,即两个软件实体之间无需直接通信,也无需直接调用的关系可以通过第三方来完成。

迪米特法则的应用可以有效地降低类之间的耦合度,使不同模块更加独立。这种设计理念使得系统结构更加松散,各个模块之间的交互更加透明。

6. 合成复用原则

这一原则倡导使用组合或聚合关系来实现复用,而不是继承关系。具体而言,开发者应该优先考虑通过将现有对象作为组成部分来实现功能扩展。

合成复用的优势在于,它可以很好地保持系统的封装性,避免了继承带来的"白箱"效应。这样的设计不仅降低了耦合度,还可以让系统实现更高的灵活性和可动态性。

转载地址:http://cansz.baihongyu.com/

你可能感兴趣的文章
兰州大学百年校庆--风雨百年萃英路
查看>>
WCF WebHttp Services in .NET 4
查看>>
Powershell中禁止执行脚本解决办法
查看>>
HTTP协议状态码详解(HTTP Status Code)
查看>>
OO_Unit2 多线程电梯总结
查看>>
git clone 出现fatal: unable to access ‘https://github 错误解决方法
查看>>
Shader 入门笔记(一) 如何学习shader
查看>>
分布式、高并发、高性能场景(抢购、秒杀、抢票、限时竞答)数据一致性解决方案
查看>>
04_Mysql配置文件(重要参数)
查看>>
python 序列化及其相关模块(json,pickle,shelve,xml)详解
查看>>
python 加密算法及其相关模块的学习(hashlib,RSA,random,string,math)
查看>>
js编写动态时钟
查看>>
JavaSE总结
查看>>
Consul安装使用
查看>>
手动造轮子——基于.NetCore的RPC框架DotNetCoreRpc
查看>>
Python IO编程
查看>>
CSS入门总结
查看>>
使用 TortoiseGit 时,报 Access denied 错误
查看>>
基于 HTML5 WebGL 的污水处理厂泵站自控系统
查看>>
[系列] Go gRPC 调试工具
查看>>