重构——51移除设值函数(Remove Setting Method)

简介: 移除设值函数(Remove Setting Method):类中的某个字段应该在对象创建时被设值,然后就不再改变;去掉该字段的所有设值函数

移除设值函数(Remove Setting Method)

类中的某个字段应该在对象创建时被设值,然后就不再改变;去掉该字段的所有设值函数

一、动机

不希望对象被改变,就不要提供设值函数,同时final之

二、做法

1、检查设值函数被使用的情况,看它是否只被构造函数调用,或者被构造函数所调用的另一个函数调用

2、修改构造函数,使其直接访问设值函数所针对的那个变量

3、编译,测试

4、移除这个设值函数,将它所针对的字段设置为final

5、编译,测试

目录
相关文章
|
1月前
|
JavaScript 前端开发 开发者
call 方法和 apply 方法的区别是什么?
【10月更文挑战第26天】`call` 方法和 `apply` 方法的主要区别在于参数传递方式和使用场景。开发者可以根据具体的函数参数情况和代码的可读性、简洁性要求来选择使用 `call` 方法还是 `apply` 方法,以实现更高效、更易读的JavaScript代码。
35 2
TypeError: Cannot set properties of undefined (setting ‘resdata‘),res定义数据出现的问题,定义的方法用this换成that
TypeError: Cannot set properties of undefined (setting ‘resdata‘),res定义数据出现的问题,定义的方法用this换成that
|
JavaScript 算法
js中函数内部属性arguments和this以及方法apply()和call()
js中函数内部属性arguments和this以及方法apply()和call()
|
Java 编译器
规避Variable used in lambda expression should be final or effectively final而引发了方法参数值拷贝的问题
规避Variable used in lambda expression should be final or effectively final而引发了方法参数值拷贝的问题
198 0
|
JSON Java 数据库
代码重构实战-将值对象改为引用对象(Change Value to Reference)
一个数据结构中可能包含多个记录,而这些记录都关联到同一个逻辑数据结构。例如,我可能会读取一系列订单数据,其中有多条订单属于同一个顾客。遇到这样的共享关系,既能将顾客信息作为值对象看待,也能将其视为引用对象
111 0
Kyro - Output 类中没有 clear() 方法
Kyro - Output 类中没有 clear() 方法
92 0
List的Clear方法与RemoveAll方法用法小结
List的Clear方法与RemoveAll方法用法小结http://www.bieryun.com/1055.html 示例代码 [csharp] view plain copy using System; using System.
2384 0
|
Linux C语言
利用__attribute__((section()))构建初始化函数表【转】
转自: https://mp.weixin.qq.com/s?__biz=MzAwMDUwNDgxOA==&mid=2652663356&idx=1&sn=779762953029c0e0946c22ef2bb0b754&chksm=810f28a1b678a1b747520ba3ee47c9e...
1779 0
重构——44移除参数(Remove Parameter)
移除参数(Remove Parameter):函数本体不再需要某个函数;将该参数去除
1491 0