【发布时间】:2010-08-07 15:44:38
【问题描述】:
我正在构建一个包含多个Connector 类的应用程序,这些类与各种数据孤岛交互。例如,请参阅我的早期问题here。无论如何,就像我的示例中的情况一样,几乎所有这些数据源在访问时间上都是昂贵的,因此每个Connector 都维护一个缓存以限制访问。对于每个数据仓库,都有一个用于获取数据的IDataSource 和一个用于缓存的Connector。通过将IDataSource 传递给我的AppFactory 类的工厂方法来访问Connector。
很遗憾,恰好有 1 个Connector 不适合此模型。 Active Directory silo 足够快,不需要缓存,因此不需要ActiveDirectoryConnector,我的AppFactory 类也不需要工厂方法。正如我之前所说,在所有其他情况下,数据都是从 Connector 对象请求的,该对象只能从带有 IDataSource 参数的 AppFactory 的方法调用中获取。
据我所知,我的选择是有一个浅的ActiveDirectoryConnector 对象,它只是将请求直接转发到它的IActiveDirectoryDataSource,或者根本没有ActiveDirectoryConnector。在前一种情况下,我与Connectors 的其余部分保持概念完整性,但我有一个无用的间接级别。在后者中,我为了直接而牺牲了概念的完整性。哪个是较小的恶?
【问题讨论】:
标签: c# active-directory