将查询函数和修改函数分离(Separate Query from Modifier)
某个函数即返回对象状态,又修改对象状态;建立两个不同的函数,其中一个负责查询,另一个负责修改
一、动机
一条好规则:任何有返回值的函数,都不应该有看得到的副作用
二、做法
1、新建一个函数,令它的返回值与原函数相同
2、修改原函数,令它调用查询函数,并返回获得的结果
3、编译,测试
4、将调用原函数的代码改为调用查询函数。然后,在调用查询函数的那一行之前,加上对原函数的调用。每次修改后,编译并测试
5、将原函数的返回值改为void,并删掉其中所有的return语句