外观模式

外观模式:为子系统中的一组接口提供一个统一的入口,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 

外观模式中,一个子系统的外部与其内部的通信通过一个统一的外观类进行,外观类将客户类与子系统的内部复杂性分隔开,使得客户类只需要与外观角色打交道,而不需要与子系统内部的很多对象打交道。

 例子:业务类A

/**
 * anji-allways.com Inc.
 * Copyright (c) 2016-2017 All Rights Reserved.
 */
package boot.demo.facade;

/**
 * <pre>
 *   OperationA
 * </pre>
 *
 * @author sxl
 * @version $Id: OperationA.java, v 0.1 2019年8月12日 上午10:37:18 sxl Exp $
 */
public class OperationA {

    public void operA () {
        System.out.println("这是A操作!!!");
    }
}

业务类B 

/**
 * anji-allways.com Inc.
 * Copyright (c) 2016-2017 All Rights Reserved.
 */
package boot.demo.facade;

/**
 * <pre>
 *   OperationB
 * </pre>
 *
 * @author sxl
 * @version $Id: OperationB.java, v 0.1 2019年8月12日 上午10:37:36 sxl Exp $
 */
public class OperationB {

    public void operB () {
        System.out.println("这是B操作!!!");
    }
}

业务类C 

/**
 * anji-allways.com Inc.
 * Copyright (c) 2016-2017 All Rights Reserved.
 */
package boot.demo.facade;

/**
 * <pre>
 *  OperationC
 * </pre>
 *
 * @author sxl
 * @version $Id: OperationC.java, v 0.1 2019年8月12日 上午10:37:51 sxl Exp $
 */
public class OperationC {

    public void operC () {
        System.out.println("这是C操作!!!");
    }
}

对外提供的外观类 

/**
 * anji-allways.com Inc.
 * Copyright (c) 2016-2017 All Rights Reserved.
 */
package boot.demo.facade;

/**
 * <pre>
 *   OperationFacade
 * </pre>
 *
 * @author sxl
 * @version $Id: DemoFacade.java, v 0.1 2018年8月31日 下午1:50:07 sxl Exp $
 */
public class OperationFacade {

    public void facade () {
        OperationA a = new OperationA();
        OperationB b = new OperationB();
        OperationC c = new OperationC();
        a.operA();
        b.operB();
        c.operC();
        System.out.println("一整套操作完成啦!!!");
    }
}

调用业务的客户端类 ,只需要调用外观类,不需要关心具体的业务类

/**
 * anji-allways.com Inc.
 * Copyright (c) 2016-2017 All Rights Reserved.
 */
package boot.demo.facade;

/**
 * <pre>
 *
 * </pre>
 *
 * @author sxl
 * @version $Id: Demo.java, v 0.1 2019年8月12日 上午10:44:20 sxl Exp $
 */
public class Demo {

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

结果如下

这是A操作!!!
这是B操作!!!
这是C操作!!!
一整套操作完成啦!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值