• 重构第3天:方法提公(Pull Up Method)


    理解:方法提公,或者说把方法提到基类中。

    详解:如果大于一个继承类都要用到同一个方法,那么我们就可以把这个方法提出来放到基类中。这样不仅减少代码量,而且提高了代码的重用性。

    看重构前的代码:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace _31DaysOfReflactor
     7 {
     8     public abstract class Vehicle
     9     {
    10         // other methods
    11     }
    12 
    13     public class Car : Vehicle
    14     {
    15         public void Turn(Direction direction)
    16         {
    17             // code here
    18         }
    19     }
    20 
    21     public class Motorcycle : Vehicle
    22     {
    23     }
    24 
    25     public enum Direction
    26     {
    27         Left,
    28         Right
    29     }
    30 }

    我们可以看出来Turn 转弯 这个方法,Car需要,Motorcycle 也需要,小车和摩托车都要转弯,而且这两个类都继承自Vehicle这个类。所以我们就可以把Turn这个方法

    提到Vehicle这个类中。

    重构后的代码如下:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace _31DaysOfReflactor
     7 {
     8     public abstract class Vehicle
     9     {
    10         public void Turn(Direction direction)
    11         {
    12             // code here
    13         }
    14     }
    15 
    16     public class Car : Vehicle
    17     {
    18        
    19     }
    20 
    21     public class Motorcycle : Vehicle
    22     {
    23     }
    24 
    25     public enum Direction
    26     {
    27         Left,
    28         Right
    29     }
    30 }

    这样做,减少代码量,增加了代码重用性和可维护性。

  • 相关阅读:
    spring分布式事务学习笔记
    大家说说看针对微信的这个限制,如何吐槽????
    Easy-Mock 一个H5前端接口模拟神器
    CSS设计模式之三权分立模式篇 ( 转)
    引爆你的Javascript代码进化 (转)
    基于jQuery的软键盘
    基于jQuery的数字键盘插件
    支持触屏的zepto轮播图插件
    支持触屏的jQuery轮播图插件
    基于CSS3的3D旋转效果
  • 原文地址:https://www.cnblogs.com/yplong/p/5278506.html
Copyright © 2020-2023  润新知