设计模式-外观模式

1.UML类图

Facade外观类,知道哪些子系统类负责处理请求,将客户的请求代理给适当的子系统对象。SubSystem Classes子系统类集合,实现子系统的功能,处理Facade对象指派的任务,注意子类中没有Facade的任何信息,即没有对象的引用。

2.示例代码

public class Facade {
    private SubSystemOne subSystemOne;
    private SubSystemTwo subSystemTwo;
    private SubSystemThree subSystemThree;
    private SubSystemFour subSystemFour;

    public Facade() {
        this.subSystemOne = new SubSystemOne();
        this.subSystemTwo = new SubSystemTwo();
        this.subSystemThree = new SubSystemThree();
        this.subSystemFour = new SubSystemFour();
    }

    public void methodA() {
        System.out.println("方法组A");
        subSystemOne.methodOne();
        subSystemTwo.methodTwo();
        subSystemFour.methodFour();
    }

    public void methodB() {
        System.out.println("方法组B");
        subSystemTwo.methodTwo();
        subSystemThree.methodThree();

    }

}

public class SubSystemOne {
    public void methodOne() {
        System.out.println("子系统方法一");
    }

}

public class SubSystemTwo {
    public void methodTwo() {
        System.out.println("子系统方法二");
    }

}

public class SubSystemThree {
    public void methodThree() {
        System.out.println("子系统方法三");
    }

}

public class SubSystemFour {
    public void methodFour() {
        System.out.println("子系统方法四");
    }

}

public class Client {
    public static void main(String[] args) {
        Facade facade = new Facade();
        facade.methodA();
        facade.methodB();
    }

}

3.特点

外观模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。适用于软件开发初期,有意识将软件分层,或是在系统变得越来越复杂时,可以使用Facade减少它们之间的依赖,再或是维护一个老项目时可以使新系统与Facade交互,Facade与老系统交互。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值