当前位置:首页 > Java技术 > Java设计模式---外观模式

Java设计模式---外观模式

2022年11月09日 19:30:01Java技术8

外观模式(Facade)

外观模式的意图是:为子系统提供一个接口,便于它的使用。


解释:

简单的说,外观模式就是封装多个上层应用需要的方法,使得上层调用变得简单,为上层提供简单的接口,是设计模式中一种比较简单的设计思想,但是,也是最常用的一种设计模式。


举例:

当你想吃橘子的时候,你需要做那几件事呢?

1:去买橘子

2:剥橘子

3:吃橘子

这样去一步一步的调用各个方法是不是觉得很麻烦呢?所以,我们需要做的工作就是简化这些步骤,把它封装在一个方法中实现。


实现:

下面给出实现代码的UML图。

Java设计模式---外观模式 _ JavaClub全栈架构师技术笔记

下面给出源代码:

1.oranger

package com.brucezhang.facade;

public class oranger {
	
	public void eat() {
		System.out.println("eat oranger !");
	}
	
	public void buy() {
		System.out.println("buy oranger !");
	}
	
	public void wash() {
		System.out.println("wash oranger !");
	}
}

2.my_oranger

package com.brucezhang.facade;

public class my_oranger {
		
	private oranger oranger;
	
	public my_oranger(oranger oranger){
		this.oranger = oranger;
	}
	
	public void go_oranger() {
		oranger.buy();
		oranger.wash();
		oranger.eat();
	}
}

3.people

package com.brucezhang.facade;

public class people {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		my_oranger myOranger = new my_oranger(new oranger());
		myOranger.go_oranger();
	}

}

由代码中我们可以看出,我们想吃橘子的时候只需要调用 go_oranger() 方法即可。

下面是运行的结果:

buy oranger !
wash oranger !
eat oranger !


作者:BruceZhang
来源链接:https://blog.csdn.net/DLUTBruceZhang/article/details/9357267

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/69039.html

分享给朋友:

“Java设计模式---外观模式” 的相关文章

Java打印车票主要学习Java的比较语句

直接上代码 public static void main(String[] args) { // TODO Auto-generated method stub //初始化 Scanner in=new Scanner(S...

java中将英尺换算为身高

java中将英尺换算为身高

直接上代码 如图所示便是身高的换算,你学到了吗?、 int foot; double inch; Scanner in=new Scanner(System.in); foot=in.nextInt(); inch=in.nextDouble...

图解 Java IO : 二、FilenameFilter源码

图解 Java IO : 二、FilenameFilter源码

Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆  &...

实现一个Java五子棋

实现一个Java五子棋

五子棋手把手教你写: 写在前面的话: 回想起从前初学代码的五子棋简直写的不像样子。今天闲来无事就写了个五子棋的小程序。 如果有需要可以从github上下载:github地址:https://github.com/GodofOrange/gobang.git 一来...

狂神Java基础总结

狂神Java基础总结

Java基础 Java学习的正确打开方式 学习是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。 链接:https://blog.csdn.net/qq_44543508/article/details/102651841...

浅谈java异常[Exception]

一. 异常的定义 在《java编程思想》中这样定义 异常:阻止当前方法或作用域继续执行的问题。虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常。绝对一点说异常就是某种意义上的错误,就是问题,它可能会导致程序失败。之所以java要...

Java Ant build.xml详解

1,什么是ant ant是构建工具 2,什么是构建 概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个 3,ant的好处 跨平台   --因为ant是使用java实现的,所以它跨平台 使用...

Java 干货之深入理解Java泛型

Java 干货之深入理解Java泛型

一般的类和方法,只能使用具体的类型,要么是基本类型,要么是自定义的类。如果要编写可以应用多中类型的代码,这种刻板的限制对代码得束缚会就会很大。 ---《Thinking in Java》 泛型大家都接触的不少,但是由于Java 历史的原因,Java 中的泛型一直...

《Java基础知识》Java技术总结

1. Java 知识点总结 Java标示符、保留字和数制:https://www.cnblogs.com/jssj/p/11114041.html Java数据类型以及变量的定义:https://www.cnblogs.com/jssj/p/11116347.html...

深入理解Java:String

深入理解Java:String

在讲解String之前,我们先了解一下Java的内存结构。   一、Java内存模型   按照官方的说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。    ...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。