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

    
    

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

  • 相关阅读:
    LeetCode 227. Basic Calculator II
    LeetCode 224. Basic Calculator
    LeetCode 103. Binary Tree Zigzag Level Order Traversal
    LeetCode 102. Binary Tree Level Order Traversal
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode 169. Majority Element
    LeetCode 145. Binary Tree Postorder Traversal
    LeetCode 94. Binary Tree Inorder Traversal
    LeetCode 144. Binary Tree Preorder Traversal
  • 原文地址:https://www.cnblogs.com/suyang-java/p/10354069.html
Copyright © 2011-2022 走看看