Java设计模式之外观模式

来源:互联网 发布:淘宝导航图片 编辑:程序博客网 时间:2024/06/15 07:01

外观模式(facade)

概念:
外观模式就是将类与类之间的关系放在一个Facade类中,降低了类类之间的耦合度。
优点:
类与类之间的关系放在一个Facade类中,起到了解耦的作用
适用:
1.客户端程序与抽象类的实现部分存在着很大的依赖性。引入Facade将这个子系统与客户以及其他的子系统分离,可以提高子系统的独立性和可移植性。
2.当你需要构建一个层次结构的子系统时,使用Facade模式定义子系统的每层的入口点。如果子系统之间是相互依赖的,你可以让他们仅通过facade进行通讯,从而简化了他们之间的依赖关系。

这里写图片描述

示例代码:

/** * 相当于SubsystemOne */public class CPU {    public void startup(){        System.out.println("cpu startup!");    }    public void shutdown(){        System.out.println("cpu shutdown!");    }}
/** * 相当于SubsystemTwo */public class Disk {    public void startup(){        System.out.println("disk startup!");    }    public void shutdown(){        System.out.println("disk shutdown!");    }}
/** * 相当于SubsystemThree */public class Memory {    public void startup(){        System.out.println("memory startup!");    }    public void shutdown(){        System.out.println("memory shutdown!");    }}
/** * 相当于Facade */public class Computer {    private CPU cpu;    private Memory memory;    private Disk disk;    public Computer(){        cpu = new CPU();        memory = new Memory();        disk = new Disk();    }    public void startup(){        System.out.println("start the computer!");        cpu.startup();        memory.startup();        disk.startup();        System.out.println("start computer finished!");    }    public void shutdown(){        System.out.println("begin to close the computer!");        cpu.shutdown();        memory.shutdown();        disk.shutdown();        System.out.println("computer closed!");    }}
/** * 外观模式的测试 * 外观模式就是将多个类的关系放在一个Facade类中,降低了类类之间的耦合度 */public class Test {    public static void main(String[] args) {        Computer computer = new Computer();        computer.startup();        computer.shutdown();    }}
原创粉丝点击