- 定义:
提供一个用来访问子系统一群接口的接口,该接口让子系统更容易使用。 - 概述:
外观模式的目的不是定义一个具有新功能的接口,而是提供一个接口让客户端减少与子系统多个模块的交互,松散耦合,让子系统更加容易使用,但是你也可以不用该接口而直接访问子系统。 - 实例(Kotlin语言)
模块A的接口以及实现
//接口
interface AModuleApi {
fun testA()
}
//实现
class AModuleImpl:AModuleApi {
override fun testA() {
println("A module api ...")
}
}
模块B的接口及实现
//接口
interface BModuleApi {
fun testB()
}
//实现
class BModuleImpl:BModuleApi {
override fun testB() {
println("B module api ...")
}
}
外观类
class Facade {
fun test(): Unit {
val aModuleImpl: AModuleApi = AModuleImpl()
aModuleImpl.testA()
val bModuleImpl: BModuleApi = BModuleImpl()
bModuleImpl.testB()
}
}
测试及结果
//测试
//外观模式(Facade Pattern)
Facade().test()
//结果
A module api ...
B module api ...
Process finished with exit code 0
- 类图
如有错误,请留言更正,或进580725421群讨论,以免误导其他开发者!!!