1

在有 3 个类的情况下,我需要选择 1 个类来使用。然后通过使用标准方法,我可以访问该文件。使用一种标准方法的原因是为了防止在使用不同的协议时重写代码。

例如,我有 3 个名为MAPI, WebDAV,的类EWS。每个类都有自己的从 Exchange Server 检索信息的方法。我希望有一个类具有访问每个类的所有标准方法。作为系统管理员,我首先选择要使用的协议,然后选择系统应该执行的过程(检索信息、更新信息等)。这样,系统管理员不需要具备编程知识,因为他/她不必在每次更改协议时都编辑代码。

我应该使用哪种设计模式?我应该使用适配器设计模式还是代理设计模式?我目前正在使用代理设计来设计有一个抽象类和另外 3 个类,AB 和 C,以及 1 个附加类,Manager 类,继承抽象类中的方法。

我使用 Manager 类来管理对任一类的访问。但是当我查看适配器模式时,它似乎是一个更好的选择。我应该使用哪个?

4

2 回答 2

1

听起来这里既不需要适配器也不需要代理设计模式。

从您的问题来看,听起来您有一个为操作提供通用接口的抽象基类,以及三个使用不同协议的具体类,以及一个用于实例化所需具体类的管理器(工厂)。这听起来很适合您的需求。

于 2013-02-11T06:26:50.000 回答
0

如果您还没有将 MAPI、WebDAV、EWS 支持实现为没有公共接口的单独类(库) ,那么只需使用公共接口(Providers即可:公共接口 ( )应该有具体的实现IDataProvider,不需要设计模式。

如果您已经将 MAPI、WebDAV、EWS 支持实现为没有公共接口的单独类(库) ,那么适配器模式会很好。例如,具体实现没有通用接口(请参阅Create()CreateItem()AddItem()方法):

类图

在这种情况下,提供者类是适配器。

于 2013-02-11T06:34:41.873 回答