开-闭原则

经典力学的基石是牛顿三大定律。而面向对象的可复用设计(Object Oriented Design, OOD)的第一块基石,便是所谓的开-闭原则(Open-Closed Principle,OCP)

1.什么是开-闭原则

一个软件实体应当对扩展开放,对修改关闭。

2.怎样做到开-闭原则

不能修改而可以扩展似乎看起来是自相矛盾的。怎么可以不修改同时可以扩展呢?

玉帝招安美猴王

招安的关键在于不允许更改现有的天庭秩序,但允许将妖猴纳入现有的秩序中,从而扩展了这一秩序。用面向对象的语言来讲,不允许更改的是系统的抽象层,而允许扩展的是系统的实现层。

抽象化是关键

解决问题的关键在于抽象化。在Java语言中,可以给出一个或多个抽象Java类或接口,规定出所有的具体类必须提供的方法特征作为系统设计的抽象层。这个抽象层可预见所有的可能扩展,因此,在任何扩展情况下都不会改变。这就使得系统的抽象层不需修改,从而满足了开-闭原则的第二条:对修改关闭。
同时,从抽象层导出一个或多个新的具体类可以改变系统的行为,因此系统的设计对扩展是开放的,这就满足了开-闭原则的第一条:对扩展开放。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值