软件设计原则

文章讨论了面向对象设计的五个基本原则:单一职责原则(SRP)强调模块应针对单一行为者负责;开闭原则(OCP)旨在使系统易于扩展而难于修改;里氏替换原则(LSP)确保子类可替换基类;接口隔离原则(ISP)防止客户端依赖不必要的接口;依赖反转原则(DIP)提倡依赖于抽象而非具体实现。

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

  1. SRP (Single Responsibility Principle)单一职责

任何一个软件模块都应该只对某一类行为者负责。即根据不同的行为者划分不同的模块、组件;否则会出现:
1、会出现共享代码
2、代码合并冲突

  1. OCP (Open Closed Principle)开闭原则

设计良好的系统应该易于扩展、抗拒修改。其目标是让系统易于扩展、同时限制其每次修改所影响的范围。如果A影响了B,则B依赖于A。反之,A不能影响B,则A依赖于B。则有高阶组件不会因为低阶组件被修改受到影响。同时利用DIP可以实现对组件之间的依赖方向进行控制。开闭原则告诉我们需要对软件中的稳定组件与可修改组件进行控制。

  1. LSP (Liskov Substitution Principle ) 里氏替换原则

任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。反例:正方形/长方形问题

  1. ISP(Interface Segregation Principle)接口隔离原则

客户端被强迫不应该依赖它不需要的接口。

  1. DIP(Dependence Inversion Principle)依赖反转原则

灵活的系统,在依赖关系中应该多引用抽象类型,而不是具体实现。但是严格执行是不现实的,如java中的String就是一个具体实现,但String是非常稳定的。一次DIP不应考虑稳定的平台、系统、接口,应该考虑到的是会经常变动的具体实现模块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼摊买鱼,菜摊卖菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值