设计模式:Facade Pattern(门面模式)

设计模式应用场景

当对象之间的关系特别复杂时,完成一个业务势必要访问多个对象,那么我们可以定制一个门面来管理这些关系,使得业务简单化


实现方式

为子系统中的一组接口提供一个一致的门面,门面模式定义一个高层接口,这个接口使得这一子系统更加容易使用。

代码示例:

1.我们先设计三个简单的类和方法
class A {
    public void a1(){
        System.out.println("a1");
    }
    public void a2(){
        System.out.println("a2");
    }
    public void a3(){
        System.out.println("a3");
    }
}

class B {
    public void b1(){
        System.out.println("b1");
    }
    public void b2(){
        System.out.println("b2");
    }
    public void b3(){
        System.out.println("b3");
    }
}

class C {
    public void c1(){
        System.out.println("c1");
    }
    public void c2(){
        System.out.println("c2");
    }
    public void c3(){
        System.out.println("c3");
    }
}
2.创建一个门面,管理维护这三个类之间的关系
class Facade {
    private A a;
    private B b;
    private C c;

    public Facade() {
        this.a = new A();
        this.b = new B();
        this.c = new C();
    }

    public void f1(){
        a.a1();
        a.a3();
        c.c1();
        b.b2();
    }
    public void f2(){
        a.a2();
        a.a1();
        b.b1();
        b.b3();
    }
    public void f3(){
        f1();
        f2();
    }
}

测试一下

    public static void main(String[] args) {
        Facade facade = new Facade();
        facade.f3();
    }

结果
在这里插入图片描述
这样一来,我们就可以通过这个门面,完成一连串要使用到不同对象的操作,而不用直接与对象进行交互

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值