《敏捷软件开发》-OCP单一职责原则

本文探讨了软件设计中的开闭原则,即软件实体应当对扩展开放,对修改关闭。文章详细解释了如何通过抽象和策略模式等设计模式,在不改变现有代码的基础上添加新功能,以实现系统的灵活性和稳定性。

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

SofeWare entities (classes,modules,function,etc.) should be open forextension but closed for modification.

1如果一个功能的改动会级联式的引发其他模块的改动,则不符合开闭原则。反之如果可以仅通过增加代码而不是修改代码来实现功能的迭代,扩展则该程序符合开闭原则。

2如何实现在不改动原代码的情况下扩展新的功能呢?答案就是抽象,如下图,如果两个类都是具体的类,当客户想换一个服务对象的时候,就不得不改动Client类。

 正确是实现方式应该是根据在客户类和服务类之间加一个接口,利用策略模式来实现服务类的替换,客户要更换新的服务类时,只需要创建一个新的服务类继承服务接口,而客户类则可以不用改动代码

                          图1 

图2 遵循开闭原则的设计

 

同时遵循开闭原则的设计模式除了策略模式还有模板方法模式

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值