外观模式(Pacade Pattern)

来源:互联网 发布:贵阳大数据就是吹牛 编辑:程序博客网 时间:2024/05/21 11:33

1. 外观模式定义

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

这里写图片描述

类图:
这里写图片描述

2. 实例

//测试public class FacadePatternTest {    public static void main(String[] args){        Computer computer=new Computer();        computer.start();        computer.shutdown();    }}//CPUclass CPU{    public void start(){        System.out.println("cpu start up!");    }    public void shutdown(){        System.out.println("cpu shutdown!");    }}//Memoryclass Memory{    public void start(){        System.out.println("Memory start up!");    }    public void shutdown(){        System.out.println("Memory shutdown!");    }}//Diskclass Disk{    public void start(){        System.out.println("Disk start up!");    }    public void shutdown(){        System.out.println("Disk shutdown!");    }}//Computer,the facade classclass Computer{    private CPU cpu=null;    private Memory memory=null;    private Disk disk=null;    public Computer(){        cpu=new CPU();        memory=new Memory();        disk=new Disk();    }    public void start(){        System.out.println("start the computer!");        cpu.start();        memory.start();        disk.start();        System.out.println("start computer finished!");    }    public void shutdown(){        System.out.println("begin to shutdown the computer");        cpu.shutdown();        memory.shutdown();        disk.shutdown();        System.out.println("computer shutdown finished!");    }}

如果我们没有Computer类,那么,CPU、Memory、Disk他们之间将会相互持有实例,产生关系,这样会造成严重的依赖,修改一个类,可能会带来其他类的修改,这不是我们想要看到的.
有了Computer类,他们之间的关系被放在了Computer类里,这样就起到了解耦的作用,这,就是外观模式!

0 0