zoukankan      html  css  js  c++  java
  • 重构之Pull Up Field ,Push Down Field 与Rename(method,class,parameter)笔记

    Pull Up Field

    两个子类中包含重复的常量,为了提高复用性将字段上移到基类中。

      public abstract class Account
        {
        }
        
    public class CheckAccount : Account
        {
            
    private decimal _minCheckBalance = 5m;
        }
        
    public class SaveAccount : Account
        {
            
    private decimal _minSaveBalance = 5m;
        }

    提高复用性,如下

    public abstract class Account
        {
            
    //protected 该类以及子类有特有的
           protected decimal _minCheckBalance = 5m;
        }
        
    public class CheckAccount : Account
        {
           
        }
        
    public class SaveAccount : Account
        {
           
        }

    Push Down Field
    基类中的一个字符串字段只被一个子类使用,因此可以进行下移。只要没有其他子类使用基类的字段时,就应该立即执行该重构。

     public abstract class Task
        {
            
    protected string _resolution;
        }
        
    public class BugTask : Task
        {
        }
        
    public class FeatureTask : Task
        {
        }

    修改后

      public abstract class Task
        {
           
        }
        
    public class BugTask : Task
        { 
            
    //为BuugTask特有
            private string _resolution;
        }
        
    public class FeatureTask : Task
        {
        }

    Rename(method,class,parameter)
    这个重构只需将名称修改得更具描述性、更容易传达其含义即可。

    代码
      public class Emp
        {
            
    public string FN { getset; }
            
    public decimal ClcHrP()
            {
                
    return 0m;
            }
        }
        //修改后更加清晰,一目了然
        
    public class Employee
        {
            
    public string FirstName { getset; }
            
    public decimal CalculateHourPay()
            {
                
    return 0m;
            }
        }
  • 相关阅读:
    Linux 策略路由配置
    nmcli 使用记录---fatt
    wii 入门之路--fatt
    【转载】Eclipse智能提示及快捷键
    Sqlserver Sequence操作
    Git学习(二)(2015年11月18日)(2016年1月29日)
    Git学习(一)(2015年11月12日)
    【转载】.NET 开发者必备的工具箱
    SQLSERVER 游标
    sqlserver添加查询 表、字段注释(转)
  • 原文地址:https://www.cnblogs.com/jasenkin/p/1800280.html
Copyright © 2011-2022 走看看