4-外观模式(门面模式)

外观模式(门面模式)

门面(外观)模式,是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使得子系统更容易使用。

文章目录

  • 外观模式(门面模式)
    • 使用场景
    • 外观(门面)模式
      • 子系统类
      • 门面类
      • 测试类

使用场景

1、客户只需要使用某个复杂系统的子集,或者需要以一种特殊的方式与系统交互时,使用门面模式。

​ 2、当需要跟踪原系统的使用情况时 ,使用门面模面模式。因为所有对系统的访问都经过FACADE,所以可以很容易地监视系统的使用 。如使用中根据情况记录日志。

​ 3、 希望封装和隐藏原系统时。

​ 4、编写新类的成本小于所有人使用原系统使用所需的成本时

外观(门面)模式

4-外观模式(门面模式)_第1张图片

将复杂的子系统调用逻辑封装起来,便于客户端调用。

子系统类

//子系统(服务类)
public class Service1 {
     
    public boolean isOK(int sigin){
      //检查是否通过
        return sigin==1?true:false;
    }
}
-----------------------------
public class Service2 {
     
    public boolean isOK(int sigin){
      //检查是否通过
        return sigin==1?true:false;
    }
}
------------------------------
public class Service3 {
     
    public boolean isOK(int sigin){
      //检查是否通过
        return sigin==1?true:false;
    }
}

在一个逻辑操作中需要用到的所有子系统

门面类

//门面类
public class Facade {
     
    Service1 service1=new Service1();
    Service2 service2=new Service2();
    Service3 service3=new Service3();

    public boolean check(int sigin) {
     
        if(!service1.isOK(sigin)) return false;
        if(!service2.isOK(sigin)) return false;
        if(!service3.isOK(sigin)) return false;
        return true;
    }
}

将所有子系统调用逻辑与顺序封装在门面类中,既简化了客户端调用、也可以在调用依次过程中进行记录日志等逻辑。

测试类

//测试类
class Test {
     
    public static void main(String[] args) {
     
        Facade facade=new Facade();
        System.out.println(facade.check(1));
    }
}

客户类只需要调用门面类的方法即可,封装省去了繁琐的步骤。

你可能感兴趣的:(设计模式,设计模式,java,外观模式,门面模式)