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

http://tech.ddvip.com   2006年11月28日    社区交流

本文详细介绍JBuilder2005实现重构之类继承体系间

  3、提炼超类

  几个类具有相同的功能时,就需要提炼出一个超类出来。如随着需求的变化,我们不但需要对四脚野兽(Animal)予以关注,还需要对鸟类(Bird)投注关怀,那么在Bird和Animal之上抽象出一个Creature类出来是再适合不过的了。

  打开Animal.java,光标移至类名称Animal处:Ctrl+Shift+R->Introduce Superclass for “Animal” 调出提炼超类的对话框,如下图所示:

  

  图 20 提炼超类对话框

  在Superclass name中指定超类名Creature,在Package中指定超类所在的包名,默认为当前类所在的包,按OK按钮,JBuilder创建Creature超类,并使Animal类继承这个超类:

  代码清单 7 Creature超类

1. package myrefactor ;
2.
3. public class Creature
4. {
5.  public Creature()
6.  {
7.  }
8. }

  Animal代码做如下调整

  代码清单 8 提炼超类

1. package myrefactor ;
2.
3. public class Animal extends Creature
4. {
5.  …
6. }

  由于Creature生成后并未编译,所以Animal类在编辑器中会提示语法错误, 出现在控制槽上。你可以通过重构信息窗口的 按钮编译重构相关的类以消除这个语法错误。本文后续内容还会碰到相似的情况,解决方法相同,将不再赘述。

  4、提炼接口

  假设我们需要为动物定义一些共同的习性,可以将类的若干方法提炼出来,用一个接口来表达。打开Animal.java,将光标移到类名Animal处:Ctrl+Shift+R->Extract Interface from Class “Animal”调出提炼接口对话框,如下所示:

  

  图 21 提炼接口对话框

  ·Interface name:接口名称,填入Habitable。

  ·Package:包名,接受默认值。

  ·Available methods:JBuilder将Animal类中所有的public方法列在该列表中,你可以选择需要将哪些方法抽取到接口中。

  点击OK完成Habitable接口的提炼。JBuilder创建Habitable接口,并使Animal实现这个接口。

  代码清单 9 Habitable接口

1. package myrefactor ;
2.
3. public interface Habitable
4. {
5.  public void howl() ;
6. }

  Animal类调整如下:

  代码清单 10 提炼接口

1. package myrefactor ;
2. public class Animal extends Creature implements Habitable
3. {
4.  …
5. }

  假设你仅希望将类中的某个方法提炼到一个接口中,你可以直接将光标移至方法名处:Ctrl+Shift+R->Extract to Interface Method更直接地完成这个操作。

责编:豆豆技术应用

正在加载评论...