基于接口而非实现编程原则
2022-08-15 10:21:29 8 举报
AI智能生成
设计原则之基于接口而非实现编程原则
作者其他创作
大纲/内容
定义
函数的命名不能暴露任何实现细节。比如,前面提到的 uploadToAliyun() 就不符合要求,应该改为去掉 aliyun 这样的字眼,改为更加抽象的命名方式,比如:upload()。
封装具体的实现细节。比如,跟阿里云相关的特殊上传(或下载)流程不应该暴露给调用者。我们对上传(或下载)流程进行封装,对外提供一个包裹所有上传(或下载)细节的方法,给调用者使用。
为实现类定义抽象的接口。具体的实现类都依赖统一的接口定义,遵从一致的上传功能协议。使用者依赖接口,而不是具体的实现类来编程。
案例
未按修改前代码示例
基于原则修改后的代码示例
ImageStorage
AliyunImageStorage
PrivateImageStorage
0 条评论
下一页