2006-08-17

Adapter

Adapter实际上在eclipse以前的版本里是叫做extension。是用来扩展功能的。因为你实现的类可能是多功能的复合体,但是某个请求者只需要它其中的一种功能或者叫做某一方面,你怎样展示给请求者呢?你可以象下面这样写函数:
Public Object getAdapter(Object key);
这个函数会根据输入的key来返回对应的对象(功能/方面)。比如一个属性视图想从你的类中抽取属性信息,而你的类里刚好有一个PropertyDescriptor的成员,这样,在判断出对方意向后就可以把成员送出去:
If(key == PropertyDescriptor)
Return myPropertyDescriptor;
有个小要点需要注意的是,你需要在getAdapter最后添上
Super.getAdapter();
这么一来保证了实现你想要的能力而不损失父类默认拥有的能力。

No comments: