JBuilder2005实现重构
有句英语谚语叫作"Look before you jump",在着手重构前,看看这个更改的影响度,以资决策,是一个不错的主意。
1、查看定义
程序类之间是相互调用的,JBuilder可以方便你查看类、方法、值域的定义,将光标置于某一代码元素上,按Ctrl+Enter快捷键或点击右键,在弹出的菜单中选择Find Definition,JBuilder将定位到该元素的定位处。
2、查看引用
类、方法、值域被定义后,其引用星洒在程序的不同地方,查看定义就象"游子寻根",而查看引用刚好相反,即从元素定义处查找所有的引用该元素的地方。将光标置于元素定义处,按Ctrl+Shift+Enter或都通过右键弹出的菜单,选择Find References,JBuilder将工程中所有的引用列在信息窗格中,如下图所示:
引用以树形方式组织,这些引用以类为分组节点,其下是具体的引用之处。下表列出了树中涉及到图标的说明:
表 2 查询引用结构图标说明
查询何种语义的引用图标说明
类、内部类、接口1) 类的继承体系
2) 类型引用:类声明或类对象的实例化。
3) 继承类型引用:当前类子孙类或引用这些子类的地方。
4) 成员引用:当前类的成员。
5) 子孙类成员引用:当前类子孙类的成员。
方法、构造函数1) 声明:当前方法声明处。
2) 直接调用:通过类对象实例调用。
3) 间接调用:通过父类或子类对象实例间接调用。
值域、局部变量1) 写:更改值域或局域变量的地方。
2) 读:读值域或局域变量的地方。
除可以在工程范围内查看引用外,也可以在当前的类范围内查看引用关系:在元素定义处右键单击,在弹出的菜单中选择Find Local References菜单项。
3、查看覆盖方法
在子类或接口的实现类中,将光标定位于覆盖方法处,右键单击,在弹出的菜单中选择Find Overridden Method,将可以查看被当前方法覆盖的祖先类方法。
相关推荐
-
JBuilder2005实现重构
有句英语谚语叫作"Look before you jump",在着手重构前,看看这个更改的影响度,以资决策,是一个不错的主意. 1.查看定义 程序类之间是相互调用的,JBuilder可以方便你查看类.方法.值域的定义,将光标置于某一代码元素上,按Ctrl+Enter快捷键或点击右键,在弹出的菜单中选择Find Definition,JBuilder将定位到该元素的定位处. 2.查看引用 类.方法.值域被定义后,其引用星洒在程序的不同地方,查看定义就象"游子寻根",而
-
五款PHP代码重构工具推荐
在软件工程学里,重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码.软件重构需要借助工具完成,而重构工具能够修改代码同时修改所有引用该代码的地方.本文收集了五款出色的PHP代码重构工具,以帮助你完善更加优秀的项目. 1. Rephactor Rephactor是一款命令行重构工具,这是一款自动化工具,允许开发者以一种简洁的方式在不同的代码库中修改源码. 主要功能: 保证重构的可逆性-- 一旦发现问题,代码是可逆的,可以回溯到前一个版本. 查找替换功能-- 普通查找替换,方法重命名,类重
-
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
思维导图 点击下图,查看大图. 介绍 条件逻辑有可能十分复杂,因此本章提供一些重构的手法,专门用来简化它们. 全文简述(你可直接跳过下面的内容) 核心重构:Decompose Conditional--分离"转辙逻辑"(switching logic)和"操作细节"(details)分离. 多处测试有相同结果:Consolidate Conditional Expresssion 条件代码中去掉重复成分:Consolidate Duplicate 标识特殊情况:Re
-
JBuilder2005开发Web应用程序
JBuilder是一个开放的Java IDE,它集成了Tomcat.Weblogic等服务器.虽然JDK.Tomcat.Weblogic不断升级,我们仍可以在JBuilder中使用它们的最新版本.由于Tomcat服务器的配置比较复杂,习惯了Windows平台的程序员常常对Tomcat的使用感到困惑.本文给出了一个使用Tomcat环境下的数据库连接池Database Connection Pool (DBCP) 的例子,说明了用JBuilder开发Web应用的一般步骤,并回答了一些经常遇到的问题.
-
mongodb 集群重构和释放磁盘空间实例详解
MongoDB集群重构,释放磁盘空间 由于mongodb删除了一部分数据后,不会回收相应的磁盘空间,所以这里通过重建数据目录的方式释放磁盘空间. 一 实验环境 配置了一个副本集,该副本集由以下三个节点组成: 10.192.203.201:27017 PRIMARY 10.192.203.202:27017 SECONDARY 10.192.203.202:10001 ARBITER 二 实验步骤 2.1 模拟环境 use dba; for(var i=0;i<1000000;i++)db.c.
-
深入浅出重构Mybatis与Spring集成的SqlSessionFactoryBean(上)
一般来说,修改框架的源代码是极其有风险的,除非万不得已,否则不要去修改.但是今天却小心翼翼的重构了Mybatis官方提供的与Spring集成的SqlSessionFactoryBean类,一来是抱着试错的心态,二来也的确是有现实需要. 先说明两点: 通常来讲,重构是指不改变功能的情况下优化代码,但本文所说的重构也包括了添加功能 本文使用的主要jar包(版本):spring-*-4.3.3.RELEASE.jar.mybatis-3.4.1.jar.mybatis-spring-1.3.0.jar
-
Repeater控件动态变更列(Header,Item和Foot)信息(重构cs)
早上有分享<Repeater控件动态变更列(Header,Item和Foot)信息> ,是动态变更一些列的内容. 虽然它算不上是完全动态化,但它已经达到初期想要的效果.如果你稍有仔细,也能轻易把它弄出来.现另开一篇,Insus.NET不是重新另外写,而是想重构cs的代码,因为前一篇的代码虽然简单,但代码冗余过多. 重构开始:首先把这五个变量删除,因为在重构过程中,已经不需要这五个变量了. 复制代码 代码如下: //宣告5个变量,将用来存储那5个月份每个部分的数量 decimal c1, c2,
-
PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性
思维导图 索引: Ø Move Method(搬移函数) Ø Move Field (搬移值域) Ø Extract Class (提炼类) Ø Inline Class (将类内联化,就是把当前的类合并到其他类中) Ø Hide Delegate (隐藏委托关系) Ø Remove Middle Man ( 移除中间人) Ø Introduce Foreign Method (引入外加函数) Ø Introduce Local Extension (引入本地扩展) 介绍 承接上文PHP 杂谈<
-
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
思维导图 介绍 前几篇系列文章,我比较关注的是<PHP 杂谈<重构-改善既有代码的设计>之一 重新组织你的函数>,但是我觉得我还是没有说清楚,我自己也有很多不理解的地方,而且这篇是我的第一篇这方面的文章,有很多的纰漏,所以我会经常性的去做修改,如果大家有好的意见不妨告知一.二. 今天谈得是"接口",此接口非"Interface",而是一个统称.我们一般可以把供别人使用的函数或者url(一般是用于提供数据)叫接口.--可能还有别的意思,毕竟我现
-
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
思维导图 介绍 承接上文的PHP 杂谈<重构-改善既有代码的设计>之 重新组织你的函数继续重构方面的内容. 这章主要针对数据的重构. 1.争论的声音--直接访问Field还是通过函数(Accessor)访问Field 2.修改Array为Object:当你看到一个Array很像一个数据结构,你可以使用Replace Array with Object,把Array变成一个对象.--数据结构更清晰. 专业术语 accessor:访问者,存储器--在本文翻译为"函数" dumb
随机推荐
- web server使用php生成web页面的三种方法总结
- jQuery1.9.1针对checkbox的调整方法(prop)
- iOS开发 widget构建详解及实现代码
- 理解和使用Oracle 8i分析工具LogMiner
- javascript获取鼠标位置部分的实例代码(兼容IE,FF)
- php面向对象全攻略 (八)重载新的方法
- PHP执行shell脚本运行程序不产生core文件的方法
- 用asp与php实现百度ping服务的代码
- jquery checkbox,radio是否选中的判断代码
- sql表连接查询使用方法(sql多表连接查询)
- JS实现页面超时后自动跳转到登陆页面
- jQuery 1.4 15个你应该知道的新特性(译)
- Javascript中的变量使用说明
- 全选并改变TR颜色的javascript实现代码
- 基于 Docker 开发 NodeJS 应用
- 基于bootstrap实现广告轮播带图片和文字效果
- 带你认识Django
- python ftp 按目录结构上传下载的实现代码
- VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
- Laravel框架下载,安装及路由操作图文详解