快速业务通道

JBuilder2005实现重构之杂项重构 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
This may require that you change some source code and the deployment descriptor by hand. We recommend using the EJB designer for most refactoring scenarios.

如果你选择继续,则需要手工更改其他相关的文件,并同时更改部署描述文件中的相关内容,稍有不慎即会发生遗漏,所以应当尽量在EJB设计器中来重构。

JBuilder2005实现重构之杂项重构(4)

时间:2010-03-20

5、代理

假设一个A类有一个成员类(B类),B类有一个方法foo(),如果C类想通过A类调用B类的foo()方法,则必须这样:

A aObj = new A(); aObj.bObj.foo();

实际情况可能会有更多的衔接层,为了减少这种层层嵌套间接调用所造成臃肿的代码,有时我们直接通过代理使代码显得简洁。在A类中提供一个代理方法foo(){bObj.foo();},这样C类只要这样就可以访问B类的foo()方法了:

A aObj = new A(); aObj.foo();

JBuilder提供了一个代理成员类方法的方便功能,来看下面的MultiAnimal类:

代码清单 19 MultiAnimal类

1. package myrefactor ; 2. public class MultiAnimal 3. { 4.  Cat cat = new Cat() ; 5.  Horse horse = new Horse() ; 6. }

打开MultiAnimal.java文件,Edit->Wizards->Delegate to Member...弹出如下的对话框:

JBuilder2005实现重构之杂项重构 - 编程入门网

图29 代理方法

·Select class:默认为当前打开的类。

·Select member:列出当前类所有的成员类,下拉框将有两个选项:cat:Cat及horse:Horse,我们选择cat:Cat。

·Available methods:Cat类、Cat类的父类及Cat类的接口的方法,展开myrefactor.Habitable接口,选择howl()方法。

·Visibility:设置代理方法的可视域类型,默认为Public,接受这个默认的值。

·Generate Javadoc for delegated methods:是否为这个代理方法产生Javadoc注释,接受默认的设置。

按OK后,JBuilder为MultiAnimal类生成一个代理方法,如下所示:

代码清单 20 生成成员类代理方法

1. package myrefactor ; 2. public class MultiAnimal 3. { 4.  Cat cat = new Cat() ; 5.  Horse horse = new Horse() ; 6.  /** 7.  * Delegate method void howl() to cat : Cat 8.  */ 9.  public void howl() 10.  { 11.   cat.howl() ; 12.  } 13. }

此外,Edit->Wizards下还提供了其他若干个有用的功能,它们分别是:

·Add:内部类、值域、构造函数、方法、Javadoc、代码模板。

·Edit Fields/Properties:编辑值域/属性。

·Edit Javadoc:编辑Javadoc。

·Implement Interface:实现接口中的方法。

·Override Methods:覆盖父类的方法。

但除Delegate to Member向导外,其他的向导使用的机会很少,你大可用其他的方法来完成这些功能。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号