• 重构8-Replace Inheritance with Delegation(委托替换继承)


    继承的误用十分普遍。它只能用于逻辑环境,但却经常用于简化,这导致复杂的没有意义的继承层次。看下面的代码:

    public class Sanitation{ 
    public String WashHands(){
    return "Cleaned!";
    }
    }
    public class Child extends Sanitation{}
    在该例中,Child并不是Sanitation,因此这样的继承层次是毫无意义的。我们可以这样重构:在Child的构造函数里实现一个Sanitation实例,并将方法的调用委托给这个实例。如果你使用依赖注入,可以通过构造函数传递Sanitation实例,尽管在我看来还要向IoC容器注册模型是一种坏味道,但领会精神就可以了。继承只能用于严格的继承场景,并不是用来快速编写代码的工具。
    public class Sanitation {
    public String WashHands() {
    return "Cleaned!";
    }
    }
    public class Child {
    private Sanitation Sanitation;//getter setter
    public Child() {
    Sanitation = new Sanitation();
    }
    public String WashHands() {
    return Sanitation.WashHands();
    }
    }
     





  • 相关阅读:
    文档视图
    引入缓冲池技术
    数据库访问与查询
    OnInitialUpdate函数
    显示股票视图的全局函数
    切换视图的核心代码
    GuiEdit的使用
    操作方法
    SQL 使用 解析
    调用API 实现 窗体 拖动
  • 原文地址:https://www.cnblogs.com/jgig11/p/5786315.html
Copyright © 2020-2023  润新知