收藏 分销(赏)

合理的自定义扩展点.doc

上传人:s4****5z 文档编号:8889812 上传时间:2025-03-06 格式:DOC 页数:3 大小:33KB 下载积分:10 金币
下载 相关 举报
合理的自定义扩展点.doc_第1页
第1页 / 共3页
合理的自定义扩展点.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
合理的自定义扩展点 关键字: eclipse extension point 自定义扩展点 Eclipse中提供了各种各样的用于扩展Eclipse功能的扩展点。 有时候,我们也要考虑提供合适的自定义扩展点来使用得应用的实现和扩展更加简单容易。   例子一:   例如以前做了一个编辑SA中各种SU的配置文件的扩展,一开始做法就很傻,把所有的类型的编辑实现都在一个插件实现类中,然后在createControl()的时候,根据用户选择的类型,就会有大致如下的实现方式:   if(...){     a.createControl(); }else if(....){      b.createControl(); }....   后来我就建议他们稍稍修改一下,定义一个扩展点来实现不同类型的选择,例如定义一个扩展点:com.....type.editor 然后实现的时候需要提供一个type类型和一个对应的实现类: 例如 type="file" class="com.....FileTypeEditor"   剩下的就是加载扩展点,根据type查找对应的Editor实现。这个实现方式明显比之前要好很多:   首先:代码结构明显清晰很多 再次:可以自由的增加和减少实现类型而不用修改代码 最后:可以自由修改匹配类型而不用修改代码   例子二:   写一个简单的代码统计工具,用来统计当前选择文件或文件夹里的代码行数。现在语言和脚本类型这么多,不可能通过一个长长的判断语句来把所有的统计类型都考滤进去,何况还有各种新语言层出不穷;例如properties文件就认为"#"是注释、bat文件里rem是一个注释、java里有/** */等等。   所以一个良好的实现就是提供一个统计类的扩展点用来提供各种对应类型的统计方式。   例如: Java代码 1. <extension    2.       point="com.tibco.cdc.liugang.codecount.countDelegate">    3.    <delegate    4.          class="com.tibco.cdc.liugang.codecount.count.CountJavaFile"   5.          fileExtensions="java">    6.    </delegate>    7.    <delegate    8.          class="com.tibco.cdc.liugang.codecount.count.CountPropertiesFile"   9.          fileExtensions="properties">    10.    </delegate>    11. </extension>   <extension point="com.tibco.cdc.liugang.codecount.countDelegate"> <delegate class="com.tibco.cdc.liugang.codecount.count.CountJavaFile" fileExtensions="java"> </delegate> <delegate class="com.tibco.cdc.liugang.codecount.count.CountPropertiesFile" fileExtensions="properties"> </delegate> </extension>   在自定义扩展点时,有一点很重要:提供一个良好的继承类或接口。   很难考滤的一点给用户足够的信息。有时无法预测用户究竟需要哪些信息。   例如我做一个SCA BPEL组件时,要从XPDL文件生成一个直接可部署的包里。因为那些Activity可能有各种各样的类型,每个类型都可能有一个单独的实现,所以我需要提供一个扩展点用以给各种实现类型一个自己在扩展来给出他们的信息以实现打包工能,最大的问题就是:无法预测有什么样类型的实现会给出,这些实现类型需要什么样的信息来实现他们的打包逻辑。所以大至只能想了!
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服