@山風(fēng)小子
public class Model implements IAdaptable
{
private Object data;
public Model()
{
}
public Object getAdapter(Class clazz)
{
if(clazz==UserViewInfo.class){
return getUserViewInfoAdapter();
}
if(clazz==AddressViewInfo.class){
return getAddressViewInfoAdapter();
}
return null;
}
private Object getAddressViewInfoAdapter()
{
if(data instanceof Address){
Address address = (Address)data;
AddressViewInfo info = new AddressViewInfo();
info.setData(address);
Image icon = new Image(getAddressIcon());
//...其他
return info;
}
return null;
}
private Object getUserViewInfoAdapter()
{
if(data instanceof User){
User user = (User)data;
UserViewInfo info = new UserViewInfo();
info.setData(user);
Image icon = new Image(getUserIcon());
//...其他
return info;
}
return null;
}
public Object getData()
{
return data;
}
public void setData(Object data)
{
this.data = data;
}
}
eclipse在emf上使用adapter來獲取一個對象的監(jiān)聽器,有興趣可以看看,還配合factory使用,內(nèi)容也不多。eclipse的機(jī)制實(shí)在很好,可惜還沒有時間抽得出來好好研究~~~~~~~~~
回復(fù) 更多評論