zoukankan      html  css  js  c++  java
  • 设计模式之门面(外观)模式(Facade)

    外观模式的主要解决的问题是:隐藏具体的内部实现,给外界的调用提供一个统一简单的接口,降低程序调用上面的耦合。比如我们驾驶一辆汽车,我们不需要考虑发动机的齿轮是怎么运转的,刹车片是怎么来刹车的。我们只需要有几个踏板,一个方向盘,几个按钮就可以驾驶一辆汽车了。

    这里我实现的是一个电脑开机的过程,同样电脑开机的具体操作已经被电脑封装起来了,我们只需要按一个按钮,就可以开机了。幕后的CPU,硬盘,显示器的一系列启动都被隐藏起来。

    CPU类:

    public class CPU {
    	public void work() {
    		System.out.println("CPU is working...");
    	}
    }
    


    硬盘类:

    public class Disk {
    	public void work(){
    		System.out.println("Disk is working...");
    	}
    }
    


    显示器类:

    public class Screen {
    	public void work() {
    		System.out.println("Screen is working...");
    	}
    }
    


    电脑类:(Facade)

    public class Computer {
    	public void startUp() {
    		new CPU().work();
    		new Disk().work();
    		new Screen().work();
    	}
    }
    


    测试类:

    public class Main {
    	public static void main(String[] args) {
    		new Computer().startUp();
    		
    	}
    }
    

    运行结果:

    CPU is working...
    Disk is working...
    Screen is working...
    

    其中电脑类就是一个Facade,代替用户和CPU,硬盘,显示器等打交道,隐藏了内部的细节实现,用户甚至不需要知道CPU,硬盘,显示器的存在。

    项目源码链接:http://www.kuaipan.cn/file/id_132802506211221447.htm?source=1

  • 相关阅读:
    防止SSH自动断线
    php intval()和floatval()
    开启 intel vt-d
    前用户sudo免密码
    分区工具parted的详解及常用分区使用方法
    Proxmox qm命令应用实例
    Mac上制作Centos7系统U盘安装盘
    FinalShell Mac OS版,Linux版安装及教程
    python爬虫彩票案例,并自动发微信
    Python利用itchat库向好友或者公众号发消息
  • 原文地址:https://www.cnblogs.com/vokie/p/3602076.html
Copyright © 2011-2022 走看看