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的关闭了

    
    

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

  • 相关阅读:
    正则匹配
    去除数组、对象某个元素
    换行
    a标签问题
    vue的坑
    宽度100%-20px ,css样式设置超出部分...
    搜狗密码框自带小键盘问题
    阻止button刷新页面
    Java IO流经典练习题
    Java中统计字符串中各个字符出现的次数
  • 原文地址:https://www.cnblogs.com/suyang-java/p/10354069.html
Copyright © 2011-2022 走看看