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; }
        }
    }

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

     
  • 相关阅读:
    EF – 4.CRUD与事务
    EF – 3.EF数据查询基础(下)数据关联
    EF – 2.EF数据查询基础(上)查询数据的实用编程技巧
    响应式的入门学习
    淘宝相关模块管理
    Git相关
    Drupal相关网站推荐
    在线视频播放软件
    Linux命令的常用
    Linux下使用Git命令及Github项目
  • 原文地址:https://www.cnblogs.com/ywsoftware/p/2892611.html
Copyright © 2011-2022 走看看