设计模式之外观模式
Posted suyang-java
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之外观模式相关的知识,希望对你有一定的参考价值。
外观模式又叫门面模式,在平时的开发中使用的极其的频繁但是却非常的简单。使用外观模式可以让客户端轻松的调用复杂的系统接口,因为客户端根本不关心子系统的内部是如何实现的,他们只需要调用门面类提供的方法即可。
举个例子,在日常生活中我们启动一台电脑只需要按一个开关即可,但是启动一台电脑的过程其实是很复杂的,可是作为用户我们并不关心电脑的启动的流程。所以门面模式是很贴切我的日常生活的。下面我们用代码来表示门面模式。首先定义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的关闭了
门面模式可以让客户端和子系统之间解耦,对于用户隐藏了内部实现的细节,相比其他的设计模式,门面设计模式还是比较好掌握的。
以上是关于设计模式之外观模式的主要内容,如果未能解决你的问题,请参考以下文章