最近读完的重构这本书。可能是今年看了不少设计模式,代码简洁之道之类的书,收获并没有特别大。
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形式的工具,形成自己的代码库,以后应该就能复制,粘贴了。
网友评论