软件设计的开闭原则与倒置原则(读书笔记)

一、开闭原则

软件实体(模块、类、函数等等)应该对扩展是开放得,对修改是关闭的。

1.1解释 :
1.对扩展是开发的 :当需求变更时,可以对模块进行扩展,使其满足需求。
2.对修改是关闭的 :对软件实体进行扩展时,不需要改动当前软件实体,不用更改代码,对于已经编译打包的模块不需要重新编译。
1.2开闭原则的实现
1.2.1使用策略模式实现开闭原则
策略模式 :多个策略实现同一个策略接口,编程的时候client 程序依赖策略接口,
运行期根据不同上下文向 client 程序传入不同的策略实现。

在这里插入图片描述
Button依赖于ButtonServer,由Dailer实现ButtonServer接口,当Button按下时调用ButtonServer中的buttonPressed方法,由于是Dailer实现了ButtonServer接口,实际上调用的是Dailer的buttonPressed方法,使得Button不会直接依赖Dailer,而且只要是实现了ButtonServer接口的类,都可以使用Button,不需要更改Button代码,使得Button满足开闭原则。

就是说本来Button是直接依赖Dailer,我们需要在Button代码中直接去判断用户的输入,并通过if/switch选择不同的功能,当我们需要对功能进行拓展时候,就要去改变Button代码,比如在if/switch中增加一些判断,这样Button就不再满足开闭原则,在之后的软件迭代中Button代码会变得臃肿,难以维护和复用,通过策略模式使得Button满足了开闭原则,之后要对Button的功能进行扩展只需要去实现ButtonServer接口,将新增的功能写在实现类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值