【代码重构】临时字段(Temporary Field)-- 如何消除和处理代码中临时字段
临时字段(Temporary Field)
什么是临时字段
某个实例变量仅为代码中一小部分功能临时所用而创建影响:通常一个对象会需要它的全部的变量。
●症状和特点
临时字段只在特定的情况下有值(因此他们被对象需要),在这种情况之外,他们的值是空的。
●问题产生的原因
通常情况下,临时变量是为了需要大量输入的算法创建的。程序员将这些字段创建在类中,而没有将它们放在方法的入参中。这些字段就只在这个算法中使用到了,在剩下的时间,都是处于未被使用的状态。
这样的代码很难被理解,你想要检测对象中的这些数据,但是由于这些原因,它们几乎总是空的。
这样的代码很难被理解,你想要检测对象中的这些数据,但是由于这些原因,它们几乎总是空的。
●解决方法
临时变量和操作它们相关的代码都可以通过类提炼法被放到一个单独的类中。换句话说,你创造了一个方法对象,来达到了相同的目的,就好像你执行了以函数对象取代函数法一样。
引入空对象并将其放在用来检查临时变量的值是否存在的条件语句的代码之中。
●好处
代码更加清楚且有条理。
【代码重构】临时字段(Temporary Field)-- 如何消除和处理代码中临时字段相关推荐
- ArcGIS中进行shp矢量文件和EXCEL进行字段连接Field Join关联遇到:提示没有OID字段问题。(地理国情监测)解决步骤
ArcGIS中进行shp矢量文件和EXCEL进行字段连接Field Join关联遇到:提示没有OID字段问题.(地理国情监测)解决步骤: (1)将你的excel表先通过excel转表工具,转化成表就生 ...
- plsql怎么用字段查表明_如何将oracle表中的字段类型、字段注释说明、字段名一起查询出来...
展开全部 SELECT b.column_name column_name -字段名 ,b.data_type data_type -字段类型 ,b.data_length -字段长度 ,a.comm ...
- #华为云·寻找黑马程序员#【代码重构之路】我是如何将8行代码缩减成1行的
[摘要]最近公司在大力提倡clean code, 而clean code 不仅是新写的代码要做,老旧的代码也要适当重构,精简我们的代码,毕竟代码还是要给人看的. 个人比较喜欢重构,当然,手术级的重构没 ...
- python 筛选 加字段_如何显示/隐藏显示在筛选中的字段,按选择分组?
你好,我正在尝试隐藏/显示一些字段在操作(树状视图)筛选/分组按字段选择部分.我找到了用fields_get函数来实现这一点的解决方案,但是当您在菜单项之间切换时,字段不会更新.我的解决方案如下.在@ ...
- mysql 字段必填 属性_如何判断数据库中的字段是否具有必填属性(50分)
你试试用SQLDMO吧 提供如下供参考 Option Explicit Dim dd As SQLDMO.Database Dim ss As New SQLDMO.SQLServer Dim tt ...
- mysql5.5怎么删除字段_Linux 上 Mysql5.5 只能新建表中的字段不能删除表,权限root...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 mysql> describe wef_wall_content; +------------+--------------+------+---- ...
- mysql把一个字段加到另一张表中_mysql如何能把一个表中的某一字段下的数据加入另一个表中相同字段下,条件是两表中的某字段相同?...
1.创建表 create table a (name varchar(20) not null,sex varchar(10)); create table b (name varchar(20) n ...
- 无码系列5.1 代码重构 消除重复代码
1 前言 本文可以视为对ThoughtWorks高级顾问yuanyingjie关于"正交四原则"策略"消除重复"的"个人解读". 如有谬误, ...
- 工程师必知的代码重构指南
作者 | CATE LAWRENCE 译者 | 冬雨 策划 | 蔡芳芳 本指南将带你了解进行代码重构的好处.可能遇到的挑战.可以采用的工具和最佳实践,以及重构和技术债务之间的区别. 我们都在寻找清理代 ...
- 【JAVA】代码重构技巧
简介 重构是持续改进代码的基础.抵制重构将带来技术麻烦:忘记代码片段的功能.创建无法测试的代码等等. 而有了重构,使用单元测试.共享代码以及更可靠的无bug 的代码这些最佳实践就显得简单多了. 鉴于重 ...
最新文章
- sed awk 笔记(二)
- 最新调查,48%的美国人表示不会乘坐自动驾驶汽车
- jdbc 变量 mysql_JDBC读写mysql总结
- C#编程(四十五)----------格式字符串
- [2010山东ACM省赛] Greatest Number(数的组合+二分搜索)
- 我司用了 6 年的 Redis 分布式限流器,很牛逼了!
- table类型数据提交_OGG数据同步异常问题总结
- git idea 本地历史版本回滚_如何为IDEA项目创建GitHub存储库和本地Git存储库
- JQuery中的.attr()与.removeAttr()
- Tensorflow Data Adapter Error: ValueError: Failed to find data adapter that can handle input
- 必须要会的Linux命令,省时省力
- 什么是网关软件?国内有好的资源网关软件吗?
- sensenet的编译调试
- 【图解】FFmpeg播放器基本原理
- (XWZ)的python学习笔记Ⅶ——正则表达式
- 关键词搜索排行榜-精准找到行业流量关键词
- 记一次企业微信回调解密报错
- 【R】R语言windows下连接MySQL
- 统计试验设计的常用模型
- 使用pycharm配置出现Conda executable path is empty问题