• 31天重构学习笔记9. 提取接口


    概念:本文中的“提取接口” 是指超过一个的类要使用某一个类中部分方法时,我们应该解开它们之间的依赖,让调用者使用接口,这很容易实现也可以降低代码的耦合性。

    正文:如下代码所示,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;
    }
    }
    }

    总结:这个重构策略也是一个常见的运用,很多设计模式也会在其中运用此思想(如简单工程、抽象工厂等都会通过接口来解开依赖)。

  • 相关阅读:
    iOS nsstring 截取字符前后字符串
    iOS 计算时间差
    Android的ProgressBar
    Android:OptionMenu
    eclipse the user operation is waiting for building workspace" to complete
    Android存储之SQLiteDatbase
    Android保存之SharedPreferences
    pkg_utility
    Oracle同义词 synonyms
    xzzx
  • 原文地址:https://www.cnblogs.com/ywsoftware/p/2892582.html
Copyright © 2020-2023  润新知