第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

設(shè)計模式——外觀模式

標簽:
JavaScript

webp

facde


阅读原文请访问我的博客


一. 概述

外观模式(Facade),为系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

外观模式通过向现有的系统添加一个接口,来隐藏系统的复杂性,用一个一致的界面来面向客户端。

外观模式是结构型设计模式。

其实外观模式在我们平时的开发中有意识或者是无意识的都有使用;比如WEB开发中我们会经常定义一个控制层(Controller),一个业务层(Service),一般来说业务层对控制层接收到的请求提供一个统一的接口来进行统一的处理,在业务层去实现各种不同的逻辑,这里的业务层就相当于一个外观类,它对客户端控制层来说屏蔽了复杂的实现。

二. UML类图

webp

facde

三. 源码实现

子系统1——SystemOne

package io.github.brightloong.lab.design.facade;/**
 * @author: BrightLoong
 * @date: 2018/8/26 20:46
 * @description:
 */public class SystemOne {    public void start() {
        System.out.println("SystemOne start");
    }    public void shutdown() {
        System.out.println("SystemOne shutdown");
    }
}

子系统2——SystemTwo

package io.github.brightloong.lab.design.facade;/**
 * @author: BrightLoong
 * @date: 2018/8/26 20:46
 * @description:
 */public class SystemTwo {    public void start() {
        System.out.println("SystemTwo start");
    }    public void shutdown() {
        System.out.println("SystemTwo shutdown");
    }
}

外观类——Facde

package io.github.brightloong.lab.design.facade;/**
 * @author: BrightLoong
 * @date: 2018/8/26 20:46
 * @description:
 */public class Facde {    private SystemOne systemOne;    private SystemTwo systemTwo;    public Facde(SystemOne systemOne, SystemTwo systemTwo) {        this.systemOne = systemOne;        this.systemTwo = systemTwo;
    }    public void systemStart() {
        systemOne.start();
        systemTwo.start();
        System.out.println("System start");
    }    public void systemShutdown() {
        systemOne.shutdown();
        systemTwo.shutdown();
        System.out.println("System shutdown");
    }
}

客户端调用和输出

package io.github.brightloong.lab.design.facade;/**
 * @author: BrightLoong
 * @date: 2018/8/26 20:46
 * @description:
 */public class Facde {    private SystemOne systemOne;    private SystemTwo systemTwo;    public Facde(SystemOne systemOne, SystemTwo systemTwo) {        this.systemOne = systemOne;        this.systemTwo = systemTwo;
    }    public void systemStart() {
        systemOne.start();
        systemTwo.start();
        System.out.println("System start");
    }    public void systemShutdown() {
        systemOne.shutdown();
        systemTwo.shutdown();
        System.out.println("System shutdown");
    }
}

输出结果如下:

SystemOne start
SystemTwo start
System start
========================
SystemOne shutdown
SystemTwo shutdown
System shutdown

四. 总结

使用场景

优点



作者:BrightLoong
链接:https://www.jianshu.com/p/65a03e227902


點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消