动机: 间接访问变量:支持更灵活的数据获取方式,如lazy Initialization(意思是只有用到值时,才对它进行初始化。) 直接访问变量:代码比较容易阅读,不需要停下来说:啊,这只是个取值函数。 选择:1、代码规范,按照团队中大多数人的做法去做。 2、个人

PHP 杂谈《重构-LMLPHP

PHP 杂谈《重构-LMLPHP

动机:

PHP 杂谈《重构-LMLPHP

  “间接访问变量”:支持更灵活的数据获取方式,如lazy Initialization(意思是只有用到值时,才对它进行初始化。)

  “直接访问变量”:代码比较容易阅读,不需要停下来说:“啊,这只是个取值函数”。

选择:1、代码规范,按照团队中大多数人的做法去做。

     2、个人比较喜欢“直接访问变量”,直到这种方式带来麻烦为止。

       martin(作者)的例子:你想获取superclass中的field,却又想在subclass中将该field改为计算后的值,这就最该使用Self Encapsulate Field。

我自己的例子:我一般会把field设置成private,如果外部变量,需要用到此field的时候,我就会用Self Encapsulate Field。或者field的值有变化的时候,用Self Encapsulate Field。


Replace Data Value with Object

状况:如果你的某个基本类型的field,需要额外的数据和行为,那么将此field变成对象。

PHP 杂谈《重构-LMLPHP

PHP 杂谈《重构-LMLPHP

PHP 杂谈《重构-LMLPHP

09-02 12:03