A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© java_dream 中级黑马   /  2014-8-26 22:00  /  1184 人查看  /  5 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

其它网站看到的:

外观模式应用场景举例

    比如在玩“极品飞车”这款游戏,你只需要等待的就是倒计时到0时以最快的车速冲到第一名,但游戏者根本没有想过在车冲出去之前要做哪些工作,比如挂档,离合器,油箱检测,调整方向等等的微操作,将这些微操作封装起来变成一个接口就是外观模式了。在WEB开发中的MVC分层架构就是典型的一个外观模式,每一层将操作的具体内容隐藏起来,保留一个接口供上层调用。

    【外观模式解释

    类型:结构模式

    为子系统中的一组接口提供一个一致的interface接口界面。

    【外观模式UML图

    【外观模式-JAVA代码实现

    新建赛车类:


package car_package;

public class car {

    public void start() {
        System.out.println("车子已启动");
    }

    public void check_stop() {
        System.out.println("刹车检查");
    }

    public void check_box() {
        System.out.println("检查油箱");
    }

    public void check_console() {
        System.out.println("检查仪表盘是否异常");
    }

}

新建赛车操作的外观类:


package car_facade;

import car_package.car;

public class car_facade_imple {

    public void car_go_go(car car_ref) {
        car_ref.check_box();
        car_ref.check_console();
        car_ref.check_stop();
        car_ref.start();
    }
}

    新建客户端运行类:


package run_main;

import car_facade.car_facade_imple;
import car_package.car;

public class run_main {

    public static void main(String[] args) {
        car_facade_imple car_facade_imple_ref = new car_facade_imple();
        car_facade_imple_ref.car_go_go(new car());
    }
}

    程序运行结果如下:


检查油箱
检查仪表盘是否异常
刹车检查
车子已启动

    很简单吧,将子操作用一个外观接口封装起来,然后调用这个接口就是调用那些非常复杂的微操作了。


5 个回复

倒序浏览
搜噶,学习了
回复 使用道具 举报
这看着好累眼啊
回复 使用道具 举报
lhtwm1 发表于 2014-8-27 16:51
这看着好累眼啊

不好意思,我编辑的时候挺好的,不知道为什么发表后就成这个样子了
回复 使用道具 举报
从哪看的这方面知识?
回复 使用道具 举报
在中国IT实验室看到的,超好理解!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马