zoukankan      html  css  js  c++  java
  • 31天重构学习笔记21. 合并继承

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

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

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

    using System.Collections.Generic;
    
    namespace LosTechies.DaysOfRefactoring.SampleCode.CollapseHierarchy.Before
    {
        public class Website
        {
            public string Title { get; set; }
            public string Description { get; set; }
            public IEnumerable<Webpage> Pages { get; set; }
        }
    
        public class StudentWebsite : Website
        {
            public bool IsActive { get; set; }
        }
    }
    重构后的代码如下: 
    using System.Collections.Generic;
    
    namespace LosTechies.DaysOfRefactoring.SampleCode.CollapseHierarchy.After
    {
        public class Website
        {
            public string Title { get; set; }
            public string Description { get; set; }
            public IEnumerable<Webpage> Pages { get; set; }
            public bool IsActive { get; set; }
        }
    }

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

     
  • 相关阅读:
    eclipse中文乱码问题解决方案
    修改Tomcat的JDK目录
    Tomcat 5.5 修改服务器的侦听端口
    HTML DOM教程 27HTML DOM Button 对象
    HTML DOM教程 24HTML DOM Frameset 对象
    Navicat for MySQL v8.0.27 的注册码
    HTML DOM教程 25HTML DOM IFrame 对象
    Tomcat 5.5 的下载和安装
    android manifest相关属性
    ubuntu10.04 下 eclipse 小结
  • 原文地址:https://www.cnblogs.com/ywsoftware/p/2892611.html
Copyright © 2011-2022 走看看