重构,读书笔记

作者: jenschen | 来源:发表于2019-11-11 15:58 被阅读0次

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

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

相关文章

  • 重构:读书笔记

    重构读书笔记 第一章 重构,第一个案例 第二章 重构原则 2.1 何为重构 重构(名词):对软件内部结构的一种调整...

  • 重构读书笔记

    title: 重构读书笔记date: 2019/11/05 重构:对软件内部结构的一种调整,目的是在不改变软件可观...

  • 《重构》读书笔记

    《重构》读书笔记 总览 第一部分 第一章从实例程序出发,展示设计的缺陷,对其重构可以了解重构的过程和方法。 第二部...

  • 《危机与重构:唐帝国及其地方诸侯》读书笔记

    《危机与重构:唐帝国及其地方诸侯》读书笔记 李碧妍先生的《危机与重构:唐帝国及其地方诸侯》一书。是以唐代后期的藩镇...

  • 《重构--改善既有代码的设计》读书笔记

    《重构--改善既有代码的设计》读书笔记 1为什么重构有用 所有有意义的事情总结下来,都是完成了一个有用的功能,或者...

  • 个人技术文章系列汇总(csdn)

    Java基础 Effective Java读书笔记 java 几种加载驱动的方法 《重构改善既有代码的设计》代码的...

  • 《重构》读书笔记

    chapter 1 重构,第一个案例 1.1 什么时候需要重构 需要为程序添加一个特性,但代码结构无法使自己方便的...

  • 重构-读书笔记

    有一本书叫做《重构 改善既有代码的设计 》,个人感觉写的还蛮不错的,在读这本书时候做的一些读书笔记,分享给大家: ...

  • 重构-读书笔记

    重构 概念:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。重构技术就是以微小的步伐修改程序。...

  • 重构,读书笔记

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

网友评论

    本文标题:重构,读书笔记

    本文链接:https://www.haomeiwen.com/subject/mxvtictx.html