引言: Introduce Explainning Variable(引入解释性变量)
Summary:
将该复杂表达式(或其中一部分)的结果放进一个临时变量,以此变量名称来解释表达式用途。
摘要:记得delphi里面有一个tchecklistbox控件,是一个可打勾的列表。现在我们也做一个,就叫jchecklistbox吧。
写代码之前,先考虑以下问题:
· 继承:当然是从swing的jlist继承。
· 数据扩充:对于jlist来说,它是显示了一系列object。无论其类型如何,都用一个默认的渲染器(defaultlistcellrenderer,从jlabel......
摘要:1、 安装tomcat
在安装了jdk后,参考tomcat for window 的安装向导,基本直接安装即可,注意:安装时会提示输入管理用户名和密码,这是以后会用到的用户名和密码,切记。
2、 安装mysql
默认安装即可。
3、 使用tomcat的web管理应用配置数据源
启动tomcat服务器,打开浏览器,输入http://localhost:8080/admin/(其中loca......
引入解释性变量上一页 ...
后期优化时,有时某些表达式虽然比较简单,例如order.getresult();,但由于其内部算法复杂并只赋值一次,如果把它使用inline temp直接嵌入调用方,那么每次需要用到的时候都进行一次计算将会付出很大的代价.此时我们可能首先看看是否能够把该函数进行extract method,再看看是否能够substitute algorithm,尽量把函数分割,实在没办法的时候,我们就只能重新引入临时变量把结果储存一次留为后用.
introduce explaining variable与replace temp with query:
【程序编程相关:
CU的精彩文章推荐】
这两者可以看情况组合使用.当我们发现某些表达式返回的结果其实可以对外开放,那么,我们可以用introduce explaining variable引入临时变量,然后用replace temp with query把这个临时变量提取到一个单独的query.
如果introduce explaining variable引入的临时变量只被赋值一次,我们可能考虑把这个变量声明为一个readonly或const变量,然后把该临时变量提炼到一个只有getter的c# property.
这两者组合使用有时候也等效于直接使用extract method.所以,如果你有时候发现要提炼的函数由于临时变量太多而逻辑不清晰,不妨把extract method的过程拆成这两者来用,往往会收到意想不到的效果.
【推荐阅读:[tip]用jsp实现直接下载文件而不是】
摘要:<%on error resume nextserver.scripttimeout=9999999function gethttppage(path) t = getbody(path) gethttppage=bytestobstr(t,"gb2312")end function
function getbody(url) on error resume next ......