“基于接口而非实现编程”的原则

本文探讨了如何通过接口编程原则重构代码,避免暴露实现细节,如将uploadToAliyun()改名upload(),并强调了接口设计在软件灵活性和扩展性上的重要性。通过封装阿里云上传流程,提供了统一的接口供开发者使用,同时遵循抽象、封装和接口意识进行架构设计。
摘要由CSDN通过智能技术生成
1. 函数的命名不能暴露任何实现细节。比如,前面提到的 uploadToAliyun() 就不符合要
求,应该改为去掉 aliyun 这样的字眼,改为更加抽象的命名方式,比如:upload()。
2. 封装具体的实现细节。比如,跟阿里云相关的特殊上传(或下载)流程不应该暴露给调
用者。我们对上传(或下载)流程进行封装,对外提供一个包裹所有上传(或下载)细 我们按照这个思路,把代码重构一下。重构后的代码如下所示:
节的方法,给调用者使用。
为实现类定义抽象的接口。具体的实现类都依赖统一的接口定义,遵从一致的上传功能
协议。使用者依赖接口,而不是具体的实现类来编程。
1.“基于接口而非实现编程”,这条原则的另一个表述方式,是“基于抽象而非实现编
程”。后者的表述方式其实更能体现这条原则的设计初衷。我们在做软件开发的时候,一定
要有抽象意识、封装意识、接口意识。越抽象、越顶层、越脱离具体某一实现的设计,越能
提高代码的灵活性、扩展性、可维护性。
2. 我们在定义接口的时候,一方面,命名要足够通用,不能包含跟具体实现相关的字眼;
另一方面,与特定实现有关的方法不要定义在接口中。
3.“基于接口而非实现编程”这条原则,不仅仅可以指导非常细节的编程开发,还能指导更
加上层的架构设计、系统设计等。比如,服务端与客户端之间的“接口”设计、类库的“接
口”设计
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值