zoukankan      html  css  js  c++  java
  • 31天重构学习笔记17. 提取父类

    概念:本文中的“提取父类”是指类中有一些字段或方法,你想把它们提取到父类中以便同一继承层次的其它类也可以访问他们,这个和之前的很多重构有异曲同工之处。

    正文:Dog 类中的EatFood和Groom有可能被其他类用到,因为他们都是动物的一些公有性质,所以这个时候我们就会考虑对它进行提炼。

    namespace LosTechies.DaysOfRefactoring.ExtractSuperclass.Before
    {
    public class Dog
    {
    public void EatFood()
    {
    // eat some food
    }

    public void Groom()
    {
    // perform grooming
    }
    }
    }

    代码如下所示,提取了Animal 方法来封装公用的EatFood和Groom类,从而使其他继承了Animal 类的子类都可以使用这两个方法了。

    namespace LosTechies.DaysOfRefactoring.ExtractSuperclass.After
    {
    public class Animal
    {
    public void EatFood()
    {
    // eat some food
    }

    public void Groom()
    {
    // perform grooming
    }
    }

    public class Dog : Animal
    {
    }
    }

    总结:这个重构是典型的继承用法,很多程序员都会选择这样做,但是要注意正确的使用,不要造成过度使用了继承,如果过度使用了,请考虑用接口、组合和聚合来实现。

  • 相关阅读:
    fetch用法说明
    正则表达式贪婪与非贪婪模式
    export ,export default 和 import 区别 以及用法
    理解MVC 框架
    HTTP 请求方法介绍
    Http协议--请求报文和响应报文
    一、Web 如何工作的
    前端工程师进阶之路-总纲
    前端知识体系之CSS及其预处理器SASS/LESS
    进度条
  • 原文地址:https://www.cnblogs.com/ywsoftware/p/2892603.html
Copyright © 2011-2022 走看看