设计原则

本文深入探讨了软件设计的六大核心原则:开闭原则、单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则及迪米特法则,旨在帮助开发者构建高质量、易维护的软件系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开闭:扩展开放,修改关闭,尽量在不修改原有代码的情况下进行扩展,需通过对抽象(抽象类,接口)进行实现进行扩展

单一职责:一个类只负责一个职责,应该只有一个引起它变化的原因。职责分离,不同职责封装在不同类中,实现高内聚,低耦合

里氏替换:所有引用基类(父类)的地方必须能透明地使用其子类的对象,表明子类是在父类的基础上进行的扩展,大多数都是代码中给定父类的静态类型,运行中确定子类的动态类型

依赖倒置:针对接口(而不是实现)编程,抽象不应该依赖于细节,细节应当依赖于抽象,尽量使用(接口,抽象类)进行声明,方法传递
举例:通过构造函数,setter或其他业务方法进行依赖注入,注入位置声明抽象类型,那么只有在运行时才能确定具体实现类,即运行时才能确定程序具体行为。

接口隔离:使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干。(接口太小,接口泛滥,接口太大,不利于使用)

迪米特法则:一个软件实体应当尽可能少地与其他实体发生相互作用。保持松散的耦合关系(降低耦合度),保证自己的修改会尽量少地影响其他模块,利于扩展,尽量创建松耦合的类,尽量降低成员变量和成员函数的访问权限,尽量设计为不可变类,尽量少引用其他对象,考虑使用中间类(层)来降低耦合

组合/聚合复用:组合(内部组件) , 聚合(共用组件),这两种都是委托关系
更多考虑组合/聚合(has),而不是继承(is),is带有强烈的依赖关系,只有确定存在这种稳定的、不变的is关系才用继承。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值