Authentication:
配置信息的本地存储(跨平台):
1 定义了AbstractConfigurationRedgistry接口。在不同的平台上实现该接口。
2 定义了 ServerEntry LibraryEntry ConnectorEntry ProxyEntry等平台无关的Bean。所有实现AbstractConfigurationRedgistry接口的类使用这些Bean。
3 在Windows平台上是存储在注册表中(为了与DI一致),其他平台利用Eclipse的。。功能
文档缓存:
1 什么时候需要缓存(在本地保存副本)
2 在什么地方缓存
3 什么时候使用这些缓存
跨Service平台:
1 定义了与Service平台无关的Service Provider接口和异常
2 在不同的插件中实现spi
3 针对不同的ServiceProvider创建不同的session,并把该sp提供的服务保存在session中。每个文档有serverUrl属性,可以在注册表中查询其personalality(属于哪个sp)。在sessionManager这个单例中查找相应的session,以调用正确的sp服务。
4 定义了独立于sp的去对象化的模型ServiceData。
UI的快速反映:
1 在执行网络操作的时候启动新的线程(非UI线程),在UI上显示pending图标(代理模式的应用)
2 在进行网络操作之前,进行必要的检查,避免不合法的调用,以减少网络操作的次数和简化错误处理的模式
3 在不需要load的情况下尽量少的load(每次重新进入原来打开过的页面的时候并不是全部执行网络load的操作,通过isloaded标记来判断是否已经load过,通过shouldload()方法来判断是否需要load,如果不需要load则使用contentProvider实现的getDeferredElements()方法来提供内容)
可复用的UI组件:
1 使用Eclipse插件技术。别的Connector直接应用我们的ui插件就可以使用已经定义好的UI组件
2 定义独立于底层service概念的模型。
支持代理服务器访问:
1 使用stub的代理设置机制
执行本地应用(浏览器,mail客户端):
1
文档模型的灵活性(独立于Service的模型定义,适应变化,使用灵活):
多国语言:
1 使用UIMessages_en.property来存储相应的界面文字素材
2 在UIMessages.java记录查询key