zoukankan      html  css  js  c++  java
  • 重构第9天:提取接口(Extract Interface)

    理解:提取接口的意思是,多于一个类共同使用某个类中的方法或属性,那么我们可以把这些方法和属性提出来,作为一个单独的接口。这样的好处是解除代码间的依赖,降低耦合性。

    详解

    先看重构前的代码:

     1  public class ClassRegistration
     2     {
     3         public void Create()
     4         {
     5             // create registration code
     6         }
     7 
     8         public void Transfer()
     9         {
    10             // class transfer code
    11         }
    12 
    13         public decimal Total { get; private set; }
    14     }
    15 
    16     public class RegistrationProcessor
    17     {
    18         public decimal ProcessRegistration(ClassRegistration registration)
    19         {
    20             registration.Create();
    21             return registration.Total;
    22         }
    23     }

    RegistrationProcessor 类只使用到了ClassRegistration 类中的Create方法和Total 字段,所以可以考虑把他们做成接口给RegistrationProcessor 调用。

    重构后的代码:

     1  public interface IClassRegistration
     2     {
     3         void Create();
     4         decimal Total { get; }
     5     }
     6 
     7     public class ClassRegistration : IClassRegistration
     8     {
     9         public void Create()
    10         {
    11             // create registration code
    12         }
    13 
    14         public void Transfer()
    15         {
    16             // class transfer code
    17         }
    18 
    19         public decimal Total { get; private set; }
    20     }
    21 
    22     public class RegistrationProcessor
    23     {
    24         public decimal ProcessRegistration(IClassRegistration registration)
    25         {
    26             registration.Create();
    27             return registration.Total;
    28         }
    29     }

    我们提取了一个IClassRegistration 接口,同时让ClassRegistration 继承此接口,然后调用端RegistrationProcessor就可以直接通过IClassRegistration 接口进行调用。

  • 相关阅读:
    VFP获取 SQL Server 的数据表、触发器、存储过程、视图等脚本
    VFP控制Excel操作集
    MS SqlServer 的日期格式化函数 Convert
    VFP 图形文件与剪切板互换的API解决方法
    VFP中OCX控件注册检测及自动注册
    VFP检测SQL Server的五个实例代码
    缓存方案笔记
    windows访问控制列表 --ACL(Access Control List)
    cnblog排版
    GIT常用命令
  • 原文地址:https://www.cnblogs.com/yplong/p/5300096.html
Copyright © 2011-2022 走看看