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

news/2024/7/24 11:54:34

移除设值函数(Remove Setting Method)

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

一、动机

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

二、做法

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

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

3、编译,测试

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

5、编译,测试


http://www.niftyadmin.cn/n/1385493.html

相关文章

Virtualbox 复制vdi文件

2019独角兽企业重金招聘Python工程师标准>>> VirtualBox可不像VMware那样,直接复制虚拟磁盘文件就可以了事的,只因为VirtualBox识别虚拟磁盘文件VDI采用了uuid识别技术. 由于测试需要搭建局域网环境,需要两台虚拟机同时运行。当我…

springmvc初始化数据

在使用springmvc时,我们也会在项目启动时初始化一些数据,具体的方式见下面的链接。这里我只贴一下InitializingBean的例子。注意事项:springmvc和sping整合时,配置注解的注意事项!不注意会导致我们的controller实例或其他的实例在初始化时加载两次&#…

The type R is already defined 错误解决办法

今天在导入一个开源项目的时候遇到了The type R is already defined的错误,试过了删除R,clear project都还是报这个错,Google一下之后找到了解决办法在 Project->Properties->Builders,把Java-Builder的选择去掉&#xff0c…

apache下安装PHP

rpm -qa zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel 或者rpm -qa zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel如果没有可以使用yum来安装yum…

Java String.split()注意点

//String[] aa "aaa|bbb|ccc".split("|");//错误String[] aa "aaa|bbb|ccc".split("\\|"); //正确for (int i 0 ; i <aa.length ; i ) {System.out.println("--"aa[i]); } “.”和“|”都是转义字符,必须得加"\\…

RabbitMQ~一些术语和最消息的生产

学习一种技术需要先了解它,而想要学好一种技术,需要更多的了解它的组成,原理和实现机制! RabbitMQ安装介绍 RabbitMQ是由erlang语言开发的,所以必须先有安装erlang&#xff0c;类似java安装RabbitMQ是C/S模式的&#xff0c;所以安装rabbitMQ服务器&#xff0c;默认端口5672提供…

[BZOJ 2821] 作诗(Poetize) 【分块】

题目链接&#xff1a;BZOJ - 2821 题目分析 因为强制在线了&#xff0c;所以无法用莫队..可以使用分块来做。 做法是&#xff0c;将 n 个数分成 n/x 个块&#xff0c;每个块大小为 x 。先预处理出 f[i][j] &#xff0c;表示从第 i 个块到第 j 个块的出现次数为偶数的数的个数。…

0813 HTML 基础

一、position&#xff1a;fixed 锁定位置&#xff08;相对于浏览器的位置&#xff09;&#xff0c;例如有些网站的右下角的弹出窗口。 示例&#xff1a; 二、position&#xff1a;absolute 1.外层没有position&#xff1a;absolute&#xff08;或relative&#xff09;&#xff…