开放封闭原则和接口隔离原则

本文探讨了软件设计中的开放封闭原则,强调在软件变化时应通过扩展而非修改原有代码。同时,介绍了接口隔离原则,指出应避免创建臃肿的接口,提倡为每个类创建最小化的专用接口,以降低耦合度并提高设计灵活性。通过实例解析了这两个原则的应用与注意事项。

开放封闭:

问题由来:

    在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。

解决方案:

    当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。

定义:

    一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。

开闭原则可能是设计模式六项原则中定义最模糊的一个了,书上只告诉我们对扩展开
放,对修改关闭,可是到底如何才能做到对扩展开放,对修改关闭,并没有明确的告
诉我们,所以我们在以后实践的过程中慢慢体会。


接口隔离:

问题由来:

    类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最

小接口,则类B和类D必须去实现他们不需要的方法。

解决方案:

    将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。

定义:

    客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
接口隔离原则的含义是:

建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。也就
是说,我们要为各个类建立专用的接口,而不要试图去建立一个很庞大的接口供所有依
赖它的类去调用。

例子:

没有遵循接口隔离原则的设计:


改之后的设计:




注意:

 采用接口隔离原则对接口进行约束时,要注意以下几点:

1、接口尽量小,但是要有限度。对接口进行细化可以提高程序设计灵活性是不挣的事

实,但是如果过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。

2、为依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法则隐藏

来。只有专注地为一个模块提供定制服务,才能建立最小的依赖关系。

3、提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值