美文网首页
外观模式

外观模式

作者: 全栈未遂工程师 | 来源:发表于2016-03-23 15:09 被阅读34次

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

外观模式结构图
package com.facade;

public class Cpu {
    public void startup() {
        System.out.println("cpu startup!");
    }
    public void shutdown() {
        System.out.println("cpu shutdown!");
    }
}
package com.facade;

public class Disk {
    public void startup(){
        System.out.println("disk startup!");
    }
    public void shutdown(){
        System.out.println("disk shutdown!");
    }
}
package com.facade;

public class Memory {
    public void startup(){
        System.out.println("memory startup!");
    }
    public void shutdown(){
        System.out.println("memory shutdown!");
    }
}
package com.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!");
    }
}
package com.facade;
/**
 * ClassName: Main 
 * @Description:外观模式(Facade):
    外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,
    而外观模式就是将他们的关系放在一个Facade类(本demo中是Computer类)中,降低了类类之间的耦合度,该模式中没有涉及到接口。
    (我们以一个计算机的启动过程为例) 
 * @author Panyk
 * @date 2015年10月13日
 */
public class Main {
    public static void main(String[] args) {
        Computer c = new Computer();
        c.startup();
        System.out.println("--------------");
        c.shutdown();
    }
}

相关文章

网友评论

      本文标题:外观模式

      本文链接:https://www.haomeiwen.com/subject/kfnllttx.html