重构Demo

Composed Method

🔰组合方法(Composed Method)应用示例

public class ListXX{
    public void add(Object element){
        if(!readOnly){
            int newSize = size + 1;
            if (newSize > elements.length){
                Object[] newElements = new Object[elements.length + 10];
                for(int i = 0; i < size; i ++){
                    newElements[i] = elements[i];
                    elements = newElements;
                }
                elements[size++] = element;
            }
        }
    }
}
利用组合方法进行重构
public class ListXX{

    private final static int GROWTH_INCREMENT = 10; // 消除魔法数
    
    public void add(Object element){
        if(readOnly){return;} // 引入卫子句(guard clause)
        if(atCapacity()){ // 对检查elements数组是否越界提炼函数
           grow(); // 对增长代码进行提炼函数
        }   
    }
    
    private boolean atCapacity(){
        return (this.size + 1) > elements.length;
    }
    
    private void grow(){
        Object[] newElements = new Object[elements.length + GROWTH_INCREMENT];
        for(int i = 0; i < size; i ++){
            newElements[i] = elements[i];
            elements = newElements;
        }
        elements[size++] = element;
    }
}
posted @ 2022-01-23 16:43  Felix_Openmind  阅读(41)  评论(0)    收藏  举报
*{cursor: url(https://files-cdn.cnblogs.com/files/morango/fish-cursor.ico),auto;}