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

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

  • 相关阅读:
    Django-分页器
    Django-利用Form组件和ajax实现的注册
    Django之auth用户认证
    django之跨表查询及添加记录
    Django之queryset API
    bootstrip CSS
    bootstrip安装
    Django之环境安装
    前端之jQuery基础篇02-事件
    前端之jQuery基础篇
  • 原文地址:https://www.cnblogs.com/ywsoftware/p/2892603.html
Copyright © 2011-2022 走看看