重構,讀書筆記

最近讀完的重構這本書。可能是今年看了不少設計模式,代碼簡潔之道之類的書,收穫並沒有特別大。

1 對於get和set的理解

申明一個private變量,又同時寫了get(getter)和set(setter)這種用法。之前對於它的理解是,可以在get和set裏面做點文章。比如

class Person{
    private $sex;
    public function getSex(){
        return $sex == 1 ? "男" : "女";
    }
}

其實還有一個好處,就是封裝了。代碼中所有的調用都是通過這個函數實現的,當我要重構的時候,就只需要對這個函數進行處理,或者說重命名。

class Person{
    private $sex;
    public function getSex(){
        $this->newGetSex();
    }
    
    public function newGetSex(){
        return $this->sex == 1 ? "男" : "女";
    }
}

2 封裝基本類型

這裏面的基本類型其實並不是指int,boolean等等之類的類型,而是指一些常用的數據,比如說電話號碼,姓名。比如說下面是對電話號碼的封裝。

class Tel{
    private $tel;
    function __construct($tel){
        this->tel = $tel;
    }
    
    function checkTel(){
        $res = preg_match("/^1[34578][0-9]{9}$/",$this->tel);
        if($res === false){
            throw new Exception("tel error");
        }
        return $res > 0 ? true : false;
    }
    
    function encryptTel(){
        return substr_replace($this—>tel,'****',3,4);
    }
    
    function toUid(){
        //...
        return "";
    }
}

或者感覺可以將這些代碼封裝static形式的工具,形成自己的代碼庫,以後應該就能複製,粘貼了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章