开放封闭原则(ocp)

一.开放封闭原则(ocp)

1.软件实体(类,函数)应该是可以扩展的,但是不可修改

- “对于扩展是开放的”行为是可以扩展的,当应用的需求改变时,可以对模块进行扩展,使其具有满足那些改变的新行为,可以改变模块的功能
- “对于更改是封闭的”对模块行为进行扩展时,不必改动模块的源代码,

2.ocp的手段:抽象化:

3.ocp实现:

a.封装变化

-什么会变化?封装
1.数据库模式
2.硬件变化
3.数据存储技术
-变化不应该分散在多个地方,而是封装在一个类中

b.预先策划,但是不需要时不实现

4.实例:
书店销售系统,计算购书总金额,根据会员的累计消费金额进行折扣,累计消费金额达到500打9.5折,1000元9折,2000元 8.5折
设计如下:

这样的设计会导致什么问题?

5.需求变更:

a.非会员一次性购书金额进行打折,300->9.5 ,500->9,按照上面的设计,必须要更改order类中的compTotal方法,增加if语句

b.项目完成后需求有变化了,对应单位会员的用户,达到2000->9折,3000->8.5,那么更改就会更多类了

6.重新设计

a.封装业务规则的变化

7.总结:

a.对扩展而开放

-对新的功能增加新代码,而不是修改已经存在的代码

-在某处具体实现接口

b.对修改而封闭

-在设计中预期可能的修改

通过抽象,继承,多态增强易扩展性。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值