Dav*_*vid 6 design-patterns facade adapter
我无法确定哪种模式最适合以下问题.
我有一个客户端系统,它将与一个单独的子系统进行交互.子系统非常复杂,所以我需要两者之间的接口来简化客户端系统.这听起来像Facade模式的完美契合,但我认为适配器模式太适合我的问题.
如果中间的接口通过简单的API调用调用子系统上的各个任务,这会有什么不同吗?
根据你的描述,它更接近Facade的公认定义,但我会说它更多的是语义辩论而不是其他任何东西.一般来说,Facade更能降低与整个子系统接口的复杂性,而适配器更适合调整现有接口或调用您的特定需求(例如基本功能在那里,但返回类型不是您想要的,等等).
这显然是一个Facade模式案例,您的目标是简化而不是实际的适应.
外墙定义:
为子系统中的一组接口提供统一接口.Façade定义了一个更高级别的接口,使子系统更易于使用.
适配器定义:
将类的接口转换为客户期望的另一个接口.适配器允许类一起工作,否则由于不兼容的接口.
定义取自:http://dofactory.com/Patterns/Patterns.aspx
当您希望将现有类的接口调整为客户期望使用的另一个接口时,将使用适配器模式.它通常只涉及从一个接口的方法到另一个接口的相应方法的委托或转换.
当您希望通过公开客户端可以使用的更简单的API集来简化复杂系统时,可以使用Facade.它涉及将复杂的API调用模式转换为单个API调用.
您的情况听起来更像是需要一个外观而不是适配器.仅实现适配器模式不会为您提供API简化的好处.最后,你所谓的并不重要.而这些模式并不是唯一的.你可以以最能带来收益的方式混合使用.