В Eclipse у вас есть метод с именем getAdapter()
, который пытается превратить объект во что-то еще. Итак, вы можете сказать:
Writer w = text.getAdapter(Writer.class);
Тогда текст может понять, как превратить себя в писателя и создать его для вас. Следующий шаг - создать реестр адаптеров, чтобы вы могли сказать:
AdapterRegistry.instance().register(TextDocument.class,
new TextDocumentAdapterFactory ());
В TextDocument
вы можете сказать:
public Object getAdapter(Class c) {
AdapterRegistry.instance().createAdapter(this, c);
}
Таким образом, вы можете добавить адаптеры для существующих объектов позже.
С другой стороны, это делает ваш код чрезвычайно гибким. С другой стороны, это делает код невозможным для отладки, так как вы не можете сказать, что в итоге getAdapter()
migth возвращает.