JBuilder2005实现重构之类继承体系间

在JBuilder中通过重构将值域、方法在类的继承体系中上推下移,是非常容易的操作。这了说明这种重构功能,我们先来看下面的类继承体系:

图15 类的继承类图

Animal类是Cat和Horse和父类,Animal中包含了两个值域和一个方法。可以将Animal中的值域有选择地下移到某个子类中。此外,还可以为Animal提炼超类和接口。

1、搬迁方法

打开Animal.java并将光标定位到howl()方法处,通过Ctrl+Shift+R->Push Down Method调出下移方法对话框:

图16 下移方法

·Method:下移的方法。

·Keep as abstract in current class:表示在下移方法的同时将类转为抽象类。

·Selected subclasses:列出当前类的所有子类,默认情况下方法将下移到所有子类中,我们取消Cat,仅将howl()下移到Horse中。

方法howl()中引用到Animal类的一个私有变量private int volume,在下移howl()后,该变量变为protected int volume。

上推和下移是相反的操作,负责将子类中的方法推到父类中去。保存并重新编译工程,打开Horse.java将光标置到howl()方法处:Ctrl+Shift+R->Pull Up Method调出上推的对话框:

图17

时间: 2025-01-21 00:45:37

JBuilder2005实现重构之类继承体系间的相关文章

重构——65折叠继承体系(Collapse Hierarchy)

折叠继承体系(Collapse Hierarchy) 超类和子类之间无太大区别:将它们合为一体 一.动机 1.继承体系很容易变得过分复杂 2.重构了继承体系后,有些类没有用了,需要把子类和超类合并起来 二.做法 1.选择想要移除的类:是超类还是子类 2.Pull Up Field,Pull Up Method或者 Push Down Method, Push Down Field 3.每次移动后,编译并测试 4.调整即将被移除的那个类的所有引用点,令它们改而引用合并后留下的类.这个动作将会影响变

实例解析继承体系重构及ORM映射

本文以双鱼座同学的再说继承关系一文中提到的一组三元继承关联关系为基础. 首先,分别实现本人的ORM中的继承关系映射全解一文中提到的三种实体继承体系到关系数据库的映射方案实例. 接着,使用接口分离以上继承体系中的实体类中的相同概念,对该继承体系进行重构,并同样给出对重构后的继承体系的三种到关系数据库的映射方案实例. 全部实例代码基于NBear的接口式实体定义方式实现. 1. 背景 首先,给出双鱼座同学原文中的三元继承关联关系的等价接口定义.见下图1: 2. 对图1-1的ORM映射 2.1 单表继承

重构——69梳理并分解继承体系(Tease Apart Inheritance)

梳理并分解继承体系(Tease Apart Inheritance) 某个继承体系同时承担两项责任:建立两个继承体系,并通过委托关系让其中一个可以调用另一个 动机 1.如果继承体系中的某一个特定层级上的所有类,其子类名称都是以相同的形容词 2.开始,那么这个体系就很可能承担着两项不同的责任

重构——72提炼继承体系(Extract Hierarchy)

提炼继承体系(Extract Hierarchy) 你有某个类做了太多工作,其中一部分工作以大量条件表达式完成 建立继承体系,以一个子类表示一种特殊情况 动机 渐进式设计

JBuilder2005实现重构之重构前的侦察

有句英语谚语叫作"Look before you jump",在着手重构前,看看这个更改的影响度,以资决策,是一个不错的主意. 1.查看定义 程序类之间是相互调用的,JBuilder可以方便你查看类.方法.值域的定义,将光标置于某一代码元素上,按Ctrl+Enter快捷键或点击右键,在弹出的菜单中选择Find Definition,JBuilder将定位到该元素的定位处. 2.查看引用 类.方法.值域被定义后,其引用星洒在程序的不同地方,查看定义就象"游子寻根",而

《Effective Ruby:改善Ruby程序的48条建议》一第6条:了解Ruby如何构建继承体系

第6条:了解Ruby如何构建继承体系 问题:当你向一个对象发送消息时,你知道Ruby是怎么定位到那个正确的方法的吗?答案看上去很简单:使用继承体系.之所以说答案是看上去简单,因为Ruby构建继承体系是在幕后进行的.这是Ruby用自己的方式来隐藏真正发生的事情的罕见情形之一,它常常带来不必要的困惑.Ruby提供给我们的用来发现继承关系中的类的方法并能完全解释其本质.还好,Ruby解释器在内部构建的继承体系是一致而简单的,只要你明白一些它的技巧. 探索Ruby查询方法的机制将揭开语言实现方式的面纱,

JBuilder2005实现重构_JSP编程

有句英语谚语叫作"Look before you jump",在着手重构前,看看这个更改的影响度,以资决策,是一个不错的主意. 1.查看定义 程序类之间是相互调用的,JBuilder可以方便你查看类.方法.值域的定义,将光标置于某一代码元素上,按Ctrl+Enter快捷键或点击右键,在弹出的菜单中选择Find Definition,JBuilder将定位到该元素的定位处. 2.查看引用 类.方法.值域被定义后,其引用星洒在程序的不同地方,查看定义就象"游子寻根",而

ORM中的继承关系映射全解——单表继承体系、一实体一具体表、一实体一扩展表

ORM中的继承关系映射全解--单表继承体系.一实体一具体表.一实体一扩展表.接口映射 本文涉及的内容包括: 1.单表继承体系 2.一实体一具体表 3.一实体一扩展表 4.接口实现映射vs基类继承映射 1.单表继承体系 所谓单表继承体系就是用一张数据库表存储整个继承体系中的所有实体的数据.单表继承体系适合那种继承体系中实体数目相对较少,总记录数相对较少,子类对父类的属性扩展也相对较少的情形. 单表继承体系优点是读/写继承体系中的每个实体的数据,都只需操作一张表,性能较好,并且,新增继承类,或扩展实

破解三大壁垒重构物联网服务体系

在昨日的APEC技展会的"服务能力重构推进物联网产业快速发展"主题报告中,专家认为物联网产业并未爆发式增长,原因在于存在行业.技术和需求方面的壁垒,应从各方面重构物联网服务体系. 中国电信集团政企客户部总经理韩臻聪认为,尽管物联网行业发展趋势很好,但目前还没有爆发式增长,主要原因是有三个方面的壁垒.一是行业壁垒,由于行业壁垒的差异,真正了解客户问题和需求的难度比较大.二是技术壁垒,缺乏一些技术的标准,不同硬件的端到端的集成,这种集成都是按照不同项目.不同设备去做不同的适配方案.三是需求