如果有3个班级,我需要选择1个班级。然后通过使用标准方法,我可以访问该文件。具有1种标准方法的原因是如果使用不同的协议则防止重写代码。
示例,我有3个名为MAPI
,WebDAV
,EWS
的班级。每个类都有自己的从Exchange Server检索信息的方法。我想拥有一个具有访问每个类的所有标准方法的类。作为系统管理员,我选择使用哪个协议,然后我选择系统应该做什么过程(检索信息,更新信息等)。这样,系统管理员不需要具有编程知识,因为他/她不必在每次他/她改变协议时编辑代码。
我应该使用哪种设计模式?我应该使用适配器设计模式还是代理设计模式?我目前正在使用代理设计来设计有抽象类的地方,另外3个类,A B和C,以及另外1个类,Manager类,继承抽象类中的方法。
我使用Manager类来管理对1个类的访问。但是当我看到适配器模式时,它似乎是一个更好的选择。我应该使用哪个?
答案 0 :(得分:1)
听起来这里既不需要适配器也不需要代理设计模式。
从你的问题来看,听起来你有一个抽象的基类,它提供了一个通用的操作接口,三个使用不同协议的具体类,以及一个管理器(工厂)来实例化所需的具体类。听起来不错。
答案 1 :(得分:0)
如果尚未实现对MAPI,WebDAV,EWS的支持作为单独的类(库)没有通用接口,那么只需使用公共接口即可:应该有公共接口((Providers
)的具体实现IDataProvider
),不需要设计模式。
如果您已经实施对MAPI,WebDAV,EWS的支持作为单独的类(库)没有通用接口那么Adapter pattern将是好的。例如,具体实现没有公共接口(请参阅Create()
,CreateItem()
,AddItem()
方法):
在这种情况下,Provider类是适配器。