OOD设计原则之开闭原则(OCP)

本文介绍了面向对象设计中的开闭原则(OCP),探讨了勃兰特·梅耶提出的最初概念,即通过新建不同类来扩展功能而不修改现有类;同时讨论了20世纪90年代流行的多态开闭原则,即利用抽象接口来实现类的扩展。

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

OOD设计原则之开闭原则(OCP)

开闭原则OCP(open-close-principle)在维基百科的定义:在面向对象编程中,开闭原则规定“软件中的对象(类,模块,函数等等)应该对扩展是开放的,但是对于修改是封闭的”,这意味着一个实体是允许在不改变他的源代码的前提下变更他的行为。

梅耶开闭原则

勃兰特丶梅耶一般被认为是最早提出开闭原则这一术语的人,1988年在面向对象软件构造中给出,这一想法认为一旦完成,一个类的实现只应该因错误而修改,新的或者改变的特性应该通过新建不同的类实现。新建的类可以通过继承的方式来重用原类的代码。衍生的子类可以或不可以拥有和原类相同的结果。

梅耶的定义是提倡继承。具体实现通过继承方式来重用,但是接口规格不必如此。已存在的实现对于修改是封闭的,但是新的实现不必实现原有的接口。

多态开闭原则

在20世纪90年代,开闭原则被广泛的重新定义由于抽象化接口的使用,在这中间实现可以被改变,多种实现可以被创建,并且多态化的替换不同的实现。

相比梅耶的使用方式,多态开闭原则的定义倡导对抽象基类的继承。接口规约可以通过继承来重用,但是实现不必重用。已存在的接口对于修改是封闭的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值