zoukankan      html  css  js  c++  java
  • 重构第21天 合并继承 (Collapse Hierarchy)

    理解本文中的”合并继承”是指如果子类的属性和方法也适合于基类,那么就可以移除子类,从而减少依赖关系。

    详解上一篇我们讲到“提取子类”重构是指当基类中的一个责任不被所有的子类所需要时,将这些责任提取到合适的子类中。而我们今天所要讲的的“合并继承”重构一般用在当我们觉得不需要子类的时候。

           

     1 public class Website
     2     {
     3         public string Title { get; set; }
     4         public string Description { get; set; }
     5         public IEnumerable<Webpage> Pages { get; set; }
     6     }
     7 
     8     public class StudentWebsite : Website
     9     {
    10         public bool IsActive { get; set; }
    11     }

    如上代码所示,StudentWebSite子类除了有一个属性用来说明网站是否是活动的外没有别的责任,在这种情形下我们意识到IsActive属性可以应用到所有的网站,所以我们可以将IsActive属性上移到基类中,并去掉StudentWebSite类。

    1  public class Website
    2     {
    3         public string Title { get; set; }
    4         public string Description { get; set; }
    5         public IEnumerable<Webpage> Pages { get; set; }
    6         public bool IsActive { get; set; }
    7     }

    这篇和上篇其实最主要论述了子类和父类的继承关系以及如何判断什么时候需要使用继承,一般我们都能处理好这些关系,所以相对比较简单。

  • 相关阅读:
    filer jquery
    通过事件传参数
    spring 自动扫描bean
    springMvc
    jquery 自动完成
    webpack
    给数组对象中每个对象添加一个字段
    js对象的继承
    react项目中,点击跳转到详情页中,url中的地址有变化,但是页面没有进行跳转...
    ElementUI eltree 树形控件给节点添加图标
  • 原文地址:https://www.cnblogs.com/yplong/p/5373095.html
Copyright © 2011-2022 走看看