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

        外观模式又叫门面模式,在平时的开发中使用的极其的频繁但是却非常的简单。使用外观模式可以让客户端轻松的调用复杂的系统接口,因为客户端根本不关心子系统的内部是如何实现的,他们只需要调用门面类提供的方法即可。

        举个例子,在日常生活中我们启动一台电脑只需要按一个开关即可,但是启动一台电脑的过程其实是很复杂的,可是作为用户我们并不关心电脑的启动的流程。所以门面模式是很贴切我的日常生活的。下面我们用代码来表示门面模式。首先定义Cpu类、显示屏类,内存类。

    //cpu类
    public class Cpu {
        public void start(){
            System.out.println("computer的cpu启动了");
        }
        
        public void stop(){
            System.out.println("computer的cpu关闭了");
        }
    }
    
    
    //显示屏类
    public class DisplayScreen {
        public void start(){
            System.out.println("computer的显示屏启动了");
        }
        
        public void stop(){
            System.out.println("computer的显示屏关闭了");
        }
    }
    
    //内存类
    public class Memory {
        public void start(){
            System.out.println("computer的内存启动了");
        }
        
        public void stop(){
            System.out.println("computer的内存关闭了");
        }
    }

    接下来我们定义一个电脑的门面类:

    public class ComputerFade {
        private Cpu cpu;
        private DisplayScreen displayScreen;
        private Memory memory;
        
        public ComputerFade(){
            this.cpu = new Cpu();
            this.displayScreen = new DisplayScreen();
            this.memory = new Memory();
        }
        
        public void start(){
            this.cpu.start();
            this.displayScreen.start();
            this.memory.start();
            System.out.println("computer的启动了");
        }
        
        public void stop(){
            this.cpu.stop();
            this.displayScreen.stop();
            this.memory.stop();
            System.out.println("computer的关闭了");
        }
    }

    客户端调用:

     public static void main(String[] args) {
            ComputerFade computerFade = new ComputerFade();
            computerFade.start();
            System.out.println("==========================");
            computerFade.stop();
        }

    执行结果:

    computer的cpu启动了
    computer的显示屏启动了
    computer的内存启动了
    computer的启动了
    ==========================
    computer的cpu关闭了
    computer的显示屏关闭了
    computer的内存关闭了
    computer的关闭了

    
    

    门面模式可以让客户端和子系统之间解耦,对于用户隐藏了内部实现的细节,相比其他的设计模式,门面设计模式还是比较好掌握的。

  • 相关阅读:
    bzoj1014: [JSOI2008]火星人prefix
    bzoj1934: [Shoi2007]Vote 善意的投票&&bzoj2768:[JLOI2010]冠军调查
    bzoj2705: [SDOI2012]Longge的问题
    bzoj4653: [Noi2016]区间
    bzoj2456: mode
    bzoj5018: [Snoi2017]英雄联盟
    关于树论【左偏树】
    caioj1522: [NOIP提高组2005]过河
    caioj1421&&hdu2167: [视频]【状态压缩】选数
    Linux下全局安装composer方法
  • 原文地址:https://www.cnblogs.com/suyang-java/p/10354069.html
Copyright © 2011-2022 走看看