提取接口
来源:互联网 发布:旋转平移矩阵 编辑:程序博客网 时间:2024/05/18 20:08
概念:本文中的“提取接口” 是指超过一个的类要使用某一个类中部分方法时,我们应该解开它们之间的依赖,让调用者使用接口,这很容易实现也可以降低代码的耦合性。
正文:如下代码所示,RegistrationProcessor 类只使用到了ClassRegistration 类中的Create方法和Total 字段,所以可以考虑把他们做成接口给RegistrationProcessor 调用。
namespace LosTechies.DaysOfRefactoring.ExtractInterface.Before{ public class ClassRegistration { public void Create() { // create registration code } public void Transfer() { // class transfer code } public decimal Total { get; private set; } } public class RegistrationProcessor { public decimal ProcessRegistration(ClassRegistration registration) { registration.Create(); return registration.Total; } }}
重构后的代码如下,我们提取了一个IClassRegistration 接口,同时让ClassRegistration 继承此接口,然后调用端RegistrationProcessor 就可以直接通过IClassRegistration 接口进行调用。
namespace LosTechies.DaysOfRefactoring.ExtractInterface.After{ public interface IClassRegistration { void Create(); decimal Total { get; } } public class ClassRegistration : IClassRegistration { public void Create() { // create registration code } public void Transfer() { // class transfer code } public decimal Total { get; private set; } } public class RegistrationProcessor { public decimal ProcessRegistration(IClassRegistration registration) { registration.Create(); return registration.Total; } }}
总结:这个重构策略也是一个常见的运用,很多设计模式也会在其中运用此思想(如简单工程、抽象工厂等都会通过接口来解开依赖)。
0 0
- 提取接口
- 提取接口
- 提取网络接口信息
- 31天重构学习笔记9. 提取接口
- x264 MB 宏块接口提取
- 特征描述子提取公用接口
- kaldi中特征提取,C++接口设计
- 股票实时数据接口提取地址
- Caffe Python接口多进程提取特征
- 思考接入sdk接口的提取
- caffe python接口:参数及特征提取
- 二次遍历法高速提取连通图,OpenCV接口版本
- 利用ffmpeg修改的音频图片提取接口
- unity3d中对枚举的使用--高度提取接口方法
- C# 重构之四(提取接口重构)
- ubuntu下caffe的python接口配置和参数提取
- 提取
- 【OpenCV学习笔记】之四:二值图像细化方法/骨架提取----基于2.0 Mat接口
- Perl语言入门(10 文件+目录)
- java动态代理机制详解
- 常用的javascript设计模式
- 10以内的阶乘相加
- 【报录比】河海大学土地资源管理2008-2016年考研报录比汇总
- 提取接口
- 安卓集成第三方.so的一些常见异常
- Android Studio2.0使用教程-提高篇
- Day6:Start for new gays
- JavaEE概念介绍
- scala实战之spark用户在线时长和登录次数统计实例
- 老兵不死,只是凋零:前九枝兰架构师王晓辉
- windows下配置两个或多个Tomcat启动的方法
- 帝国cms常用标签整理,给有需要的人们