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上搭建tingproxy服务
    windows上搭建linux系统
    PHP将图片流存为图片文件
    openLayer矩形框选要素,展示要素属性
    点击选中的要素,更换标注图片,并添加文本标注
    openLayer点击要素获取对应的属性信息
    openLayer实现放大缩小
    openLayer的切换中心点、定位功能
    使用openLayer加载arcgis中的地图
    openLayer实现两个地图联动
  • 原文地址:https://www.cnblogs.com/jasenkin/p/1800280.html
Copyright © 2011-2022 走看看