美文网首页
外观模式-Facade

外观模式-Facade

作者: Josaber | 来源:发表于2016-12-23 12:14 被阅读0次

外观模式是为了解决类与类之间依赖关系的,外观模式将类间关系放在一个Facade类中,降低了类类之间的耦合度,该模式中不涉及接口

构造外观模式

举一个经典的例子:

  • CPU
public class CPU {  
    public void startup(){  
        System.out.println("cpu startup");  
    }  
      
    public void shutdown(){  
        System.out.println("cpu shutdown");  
    }  
}
  • Mainboard
public class Mainboard {  
      
    public void startup(){  
        System.out.println("mainboard startup");  
    }  
      
    public void shutdown(){  
        System.out.println("mainboard shutdown");  
    }  
}
  • Disk
public class Disk {  
      
    public void startup(){  
        System.out.println("disk startup");  
    }  
      
    public void shutdown(){  
        System.out.println("disk shutdown");  
    }  
}
  • Computer类(外观类)
public class Computer {  
    private CPU cpu;  
    private Mainboard mainboard;  
    private Disk disk;  
      
    public Computer(){  
        cpu = new CPU();  
        mainboard = new Mainboard();  
        disk = new Disk();  
    }  
      
    public void startup(){  
        System.out.println("starting the computer");  
        cpu.startup();  
        mainboard.startup();  
        disk.startup();  
        System.out.println("computer is started");  
    }  
      
    public void shutdown(){  
        System.out.println("closing the computer");  
        disk.shutdown();  
        mainboard.shutdown();  
        cpu.shutdown();  
        System.out.println("computer is closed");  
    }  
}

测试

public class Main {  

    public static void main(String[] args) {  
        Computer computer = new Computer();  
        computer.startup();  
        computer.shutdown();  
    }  
}

测试结果:

starting the computer
cpu startup
mainboard startup
disk startup
computer is started
closing the computer
disk shutdown
mainboard shutdown
cpu shutdown
computer is closed

分析

如果我们没有外观类(Computer),CPU、Mainboard、Disk之间将会相互持有实例对象,造成严重的依赖;而有了Computer,他们之间的关系被放在了Computer类里,这样就起到了解耦的作用。这就是外观模式!

相关文章

  • Android 设计模式入门到精通之十:外观模式(Facade

    外观模式(Facade Pattern,门面模式) 1. 概念 Facade Pattern: Provide a...

  • Android设计模式——外观模式(七大结构型)

    1.外观模式介绍 外观模式(Facade Pattern),是七大结构型设计模式之一。 外观模式运...

  • 外观模式(Facade)

    定义外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一...

  • 外观模式-facade

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

  • 外观模式(Facade)

    1、概念 外观模式是外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,...

  • 外观模式(Facade)

    外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口是的这一子系统...

  • 外观模式(Facade)

    为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 类型 结...

  • 外观模式-Facade

    外观模式是为了解决类与类之间依赖关系的,外观模式将类间关系放在一个Facade类中,降低了类类之间的耦合度,该模式...

  • 外观模式(Facade)

    文章转自iOS设计模式:外观模式 基本概念 外观模式:为子系统的一组接口提供一个一致的界面,此模式定义一个高层接口...

  • 外观模式(facade)

    facade模式是为了简化操作,使用组合的方式提供一个统一的入口,而隐藏细节。 一般程序设计中很少使用外观模式,只...

网友评论

      本文标题:外观模式-Facade

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