1

最近读完的重构这本书。可能是今年看了不少设计模式,代码简洁之道之类的书,收获并没有特别大。

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形式的工具,形成自己的代码库,以后应该就能复制,粘贴了。


fish
101 声望2 粉丝

希望你能够学习新的技术