模式介绍
门面模式有叫做外观模式是属于结构型模式的一种,对外提供顶级的一个接口,通过这个顶级接口访问下面的子系统。
角色划分
外观角色:多个子系统对外提供一个公共的接口
子系统角色:实现系统的部分功能,客户可以通过外观角色进行访问
UML

使用场景
门面模式的使用场景,暂时没有好的例子
案例:例如医院的导诊台就是一个门面,通过这个门面可以去到我们想要去的科室
案例实现
1、外观类
csharp
public class HospitalFacde {
private Register register;
private Operation operation;
private Dispensary dispensary;
public HospitalFacde(){
register = new Register();
operation = new Operation();
dispensary = new Dispensary();
}
public void register(){
register.work();
}
public void operation(){
operation.work();
}
public void dispensary(){
dispensary.work();
}
}
2、子系统角色
手术系统
typescript
public class Operation implements Hospital{
@Override
public void work() {
System.out.println("代领患者去手术室...");
}
}
挂号系统
typescript
public class Register implements Hospital{
@Override
public void work() {
System.out.println("带领患者去挂号...");
}
}
取药系统
typescript
public class Dispensary implements Hospital{
@Override
public void work() {
System.out.println("带领患者抓药...");
}
}
3、客户端
typescript
public class ClientPatient{
public static void main(String[] args) {
HospitalFacde hospitalFacde = new HospitalFacde();
hospitalFacde.register();
hospitalFacde.operation();
hospitalFacde.dispensary();
}
}