《设计模式解析》读书笔记之Facade Pattern(外观模式)

《设计模式解析》读书笔记之Facade Pattern(外观模式)


一、Facade Pattern 模式简介

为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层的接口,是子系统更加容易使用。

这里写图片描述

二、Facade Pattern关键特征

名称说明
意图希望简化原有系统的使用方式。需要定义自己的接口。
问题只需要使用哦某个复杂系统的子集,或者,需要以一种特殊的方式使与系统交互
解决方案Facade为原有系统的客户提供了一个新的接口
参与者与协作者接口本身和各个子系统。为用户提供一个简化接口,是系统更容易使用
效果Facade模式简化了对所需子系统的使用过程。但是,由于Facade并不完整,因此客户可能无法使用某些功能
实现定义一个(或多个)具备所需接口的新类
让新的类使用原有的系统

三、代码

代码参考自《大话设计模式》

3.1子系统

package com.qwm.facade;

/**
 * 子系统----------------------
 */


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


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

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

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

3.2Facade(外观类)


package com.qwm.facade;

/**
 * Created by qiwenming on 16/6/23.
 * Facade类(外观类)
 */
public class Facade {
    private SubSystemOne subOne;
    private SubSystemTwo subTwo;;
    private SubSystemThree subThree;
    private SubSystemFour subFour;
    public Facade() {
        subOne = new SubSystemOne();
        subTwo = new SubSystemTwo();
        subThree = new SubSystemThree();
        subFour = new SubSystemFour();
    }

    public void methodA(){
        System.out.println("------方法组A--------");
        subOne.methOne();
        subFour.methFour();
        subThree.methThree();
    }

    public void methodB(){
        System.out.println("------方法组B--------");
        subOne.methOne();
        subTwo.methTwo();
    }

}

3.3客户端


package com.qwm.facade;

/**
 * Created by qiwenming on 16/6/23.
 * 客户端
 */
public class Client {
    public static void main(String[] args){
        Facade facade = new Facade();
        facade.methodA();
        facade.methodB();
    }
}
`

3.4结果


------方法组A--------

子系统方法一

子系统方法四

子系统方法三

------方法组B--------

子系统方法一

子系统方法二

四、源码下载

https://github.com/qiwenming/designpattern/tree/master/src/com/qwm/facade

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值