首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

rcp adapters 扩充点

2012-10-29 
rcpadapters 扩展点org.eclipse.core.runtime.adapters?该扩展点,可以通过IAdapterFactory ?把 类型转换这

rcp adapters 扩展点

org.eclipse.core.runtime.adapters?

该扩展点,可以通过IAdapterFactory ?把 类型转换这块代码 抽取出来,从而达到解除耦合。

?

原始做法:

public ?class Model ? ?implements IAdaptable{

?

? ? ?。。。。。

@Override

public Object getAdapter(Class adapter) {

?if。。return

? ? ? ? ? ? ? ? ?if。。。return

? ? ? ? ? 在这里if else

?

}

}

这样做扩展性不太好。

使用扩展点的方式:

?

public class?Model? ?extends PlatformObject {。。。。}这样就可以了。不用再if elsePlatformObject会从AdapterManager.getDefault().getAdapter(this, adapter);得到需要的类型。在使用之前 需把IAdapterFactory注册到AdapterManager里。可以通过代码的形式,也可以通过扩展点点形式。代码注册:Platform.getAdapterManager().registerAdapters(new AdapterFactory(), User.class);扩展点注册:<extension? ? ? ? ?point="org.eclipse.core.runtime.adapters">? ? ? <factory? ? ? ? ? ? adaptableType="model.User"? ? ? ? ? ? class="adapter.AdapterFactory">? ? ? ? ?<adapter? ? ? ? ? ? ? ?type="adapter.IAddress">? ? ? ? ?</adapter>? ? ? </factory>? ?</extension>扩展点是使用AdapterFactoryProxy 对IAdapterFactory进行了代理/包装。

总结1:model ?实现 ?PlatformObject2:向AdapterManager中注册IAdapterFactory从而实现动态的类型转换(适配)

热点排行