zoukankan      html  css  js  c++  java
  • 重构29-Remove Middle Man(去掉中间人)

    有时你的代码里可能会存在一些“Phantom”或“Ghost”类,Fowler称之为“中间人(Middle Man)”。这些中间人类仅仅简单地将调用委托给其他组件,除此之外没有任何功能。 这一层是完全没有必要的,我们可以不费吹灰之力将其完全移除。
    public class Consumer {
    public AccountManager AccountManager;//getter setter
    public Consumer(AccountManager accountManager) {
    AccountManager = accountManager;

    }
    public void Get(int id) {
    Account account = AccountManager.GetAccount(id);
    }
    }

    public class AccountManager {
    public AccountDataProvider DataProvider;//getter setter
    public AccountManager(AccountDataProvider dataProvider) {
    DataProvider = dataProvider;

    }
    public Account GetAccount(int id) {
    return DataProvider.GetAccount(id);
    }
    }
    public class AccountDataProvider {
    public Account GetAccount(int id) {
    // get account
    }
    }
    最终结果已经足够简单了。我们只需要移除中间人对象,将原始调用指向实际的接收者。
    public class Consumer {
    public AccountDataProvider AccountDataProvider;//getter settter

    public Consumer(AccountDataProvider dataProvider) {
    AccountDataProvider = dataProvider;
    }

    public void Get(int id) {
    Account account = AccountDataProvider.GetAccount(id);
    }
    }

    public class AccountDataProvider {
    public Account GetAccount(int id) { // get account
    }
    }





  • 相关阅读:
    文件下载
    python生成pdf
    python保存文件到数据库
    html 表格边线设置
    形态学函数cvMorphologyEx
    图像的形态学梯度
    opencv图像二值化的函数cvThreshold()。 cvAdaptiveThreshol
    自适应二值化的经典方法------大律法
    基于局部阈值化的图像二值化
    边缘检测常见算法
  • 原文地址:https://www.cnblogs.com/jgig11/p/5786500.html
Copyright © 2011-2022 走看看