zoukankan      html  css  js  c++  java
  • 外观模式

    1.外观模式简介

    外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。属于结构型模式,它向现有的系统添加
    一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
    缺点:不符合开闭原则。
    使用场景:为复杂的模块或子系统提供外界访问的模块、子系统相对独立、预防低水平人员带来的风险。在层次化结构中,可以使用外观模式定义系统中每一层的入口。

    2.试验Demo

    interface Chip {
        public void startUp();
        public void shutDown();
    }
    
    /*构建电脑子系统,包含CPU,Memory,Flash等*/
    class CPU implements Chip {
        public void startUp() {
            System.out.println("CPU startUp");
        }
        public void shutDown() {
            System.out.println("CPU shutDown");
        }
    }
    
    class Memory implements Chip {
        public void startUp() {
            System.out.println("Memory startUp");
        }
        public void shutDown() {
            System.out.println("Memory shutDown");
        }
    }
    
    class Flash implements Chip {
        public void startUp() {
            System.out.println("Falsh startUp");
        }
        public void shutDown() {
            System.out.println("Falsh shutDown");
        }
    }
    
    /*提供一个门面类,外界通过它提供的函数来开关电脑内部的各个器件*/
    class ComputerSystem {
        private Chip cpu, memory, flash;
        public ComputerSystem() {
            cpu = new CPU();
            memory = new Memory();
            flash = new Flash();        
        }
    
        void startUp() {
            cpu.startUp();
            memory.startUp();
            flash.startUp();
        }
    
        void shutDown() {
            cpu.shutDown();
            memory.shutDown();
            flash.shutDown();
        }
    
        void startUpFlash() {
            flash.startUp();
        }
    
        void shutDownFlash() {
            flash.shutDown();
        }
    }
    
    public class FacadePattern {
        public static void main(String args[]) {
            ComputerSystem s = new ComputerSystem(); /*这里避免了对电脑的每一个器件的直接操作*/
    
            s.startUp();
    
            s.shutDown();
        }
    }

    参考:http://www.runoob.com/design-pattern/facade-pattern.html

  • 相关阅读:
    【代码笔记】Web-利用Dreamweaver实现form
    【代码笔记】Web-利用Dreamweaver实现表格
    【工具相关】Web-HTML特殊字符对照表
    【工具相关】Web-Sublime Text2-注释
    【工具相关】web-HTML/CSS/JS Prettify的使用
    【工具相关】Web--nodejs的安装
    【代码笔记】Web--使用Chrome来查看网页源代码
    【代码笔记】Web-手机端的meta
    【工具相关】Web-Sublime Text2-通过Package Control安装插件
    【工具相关】Web-Sublime Text2-安装 Package Control
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/10716658.html
Copyright © 2011-2022 走看看