设计模式之外观模式

设计模式之外观模式
  1. 外观模式基本介绍

    1. 外观模式也叫做过程模式:外观模式为子系统 的一组接口提供一个一致的界面 ,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用

    2. 外观模式通过定义一个一致的接口,用于屏蔽内部子系统的细节,使得调用端和这个接口发生调用,而无需关心这个子系统的内部细节

    3. 结构型模式

  2. 原外观模式原理类图

    1. 类图

      设计模式之外观模式

       

       

    2. 分析

      1. 外观类(Facade):为调用端提供一个统一的调用接口, 外观类知道哪些子系统负责处理请求,从而将调用端的请求代理给与适当子系统对象

      2. 调用者(Client):外观接口的调用者

      3. 子系统的集合:指模块或者子系统,处理Facade对象指派的任务,是功能的实际提供者

  3. 通过外观模式解决影院管理

    1. 代码

      public class DVDPlayer{
         //使用单例模式中的饿汉式
         private static DVDPlayer instance= new DVDPlayer();
         private DVDPlayer(){}
         
         public static DVDPlayer getInstance(){
             return instance;
        }
         public void on(){
             System.out.println("DVD on");
        }
         
         public void off(){
             System.out.println("DVD off");
        }
         
         public void play(){
             System.out.println("DVD is playing");
        }
         public void stop(){
             System.out.println("DVD is stop");
        }
      }
      ?
      //爆米花机
      public clas Popcorn{
          //使用单例模式中的饿汉式
         private static Popcorn instance= new Popcorn();
         private Popcorn(){}
         
         public static Popcorn getInstance(){
             return instance;
        }
         public void on(){
             System.out.println("Popcorn on");
        }
         
         public void off(){
             System.out.println("Popcorn off");
        }
         
         public void pop(){
             System.out.println("Popcorn is poping");
        }
      }
      //投影仪
      public class Projector{
           //使用单例模式中的饿汉式
         private static Projector instance= new Projector();
         private Projector(){}
         
         public static Projector getInstance(){
             return instance;
        }
         public void on(){
             System.out.println("Projector on");
        }
         
         public void off(){
             System.out.println("Projector off");
        }
         
         public void focus(){
             System.out.println("Projector is focus");
        }  
      }
      ?
      //屏幕
      public class Screen{
            //使用单例模式中的饿汉式
         private static Screen instance= new Screen();
         private Projector(){}
         
         public static Screen getInstance(){
             return instance;
        }
         public void up(){
             System.out.println("Screen up");
        }
         
         public void down(){
             System.out.
上一篇:流的操作(二)如何选择流?


下一篇:性能测试瓶颈判断(LR&Windowns)