设计模式篇之 门面模式 Facade
别名:外观模式
目的
外观模式是一种结构型设计模式,它为库、框架或任何其他复杂的类集合提供了一个简化的接口。
问题
假设你需要让你的代码与属于复杂库或框架的一组广泛对象一起工作。通常情况下,你需要初始化所有这些对象,跟踪它们之间的依赖关系,按正确的顺序执行方法,等等。
结果,你的类的业务逻辑将与第三方类的实现细节紧密耦合,这使得代码难以理解和维护。
解决方案
外观是一个类,它为包含许多活动部件的复杂子系统提供了一个简单的接口。与直接与子系统交互相比,外观可能提供的功能有限。然而,它只包含客户端真正关心的功能。
当你需要将你的应用程序与具有数十种功能的复杂库集成,但你只需要其中一小部分功能时,拥有一个外观是非常方便的。
例如,一个将搞笑的猫咪视频上传到社交媒体的应用程序,可以使用一个专业的视频转换库。然而,它真正需要的只是一个具有单个方法`encode(filename, format)`的类。在创建了这样一个类并将其与视频转换库连接起来之后,你就拥有了你的第一个外观。
真实世界对比
