Java 外观模式

外观模式隐藏了系统的复杂性。

它为客户端提供了一个简单的接口,客户端使用接口与系统交互。

外观模式是结构型模式。

例子

class ShapeFacade {
  interface Shape {
    void draw();
  }
  class Rectangle implements Shape {
    @Override
    public void draw() {
      System.out.println("Rectangle::draw()");
    }
  }
  class Square implements Shape {
    @Override
    public void draw() {
      System.out.println("Square::draw()");
    }
  }
  class Circle implements Shape {
    @Override
    public void draw() {
      System.out.println("Circle::draw()");
    }
  }
  private Shape circle = new Circle();
  private Shape rectangle = new Rectangle();
  private Shape square = new Square();

  public ShapeFacade() {
  }
  public void drawCircle() {
    circle.draw();
  }
  public void drawRectangle() {
    rectangle.draw();
  }
  public void drawSquare() {
    square.draw();
  }
}
public class Main {
  public static void main(String[] args) {
    ShapeFacade shapeFacade = new ShapeFacade();
    shapeFacade.drawCircle();
    shapeFacade.drawRectangle();
    shapeFacade.drawSquare();
  }
}

上面的代码生成以下结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/522456.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Win主机拷贝文件到Ubuntu虚拟机

之前在虚拟机Ubuntu16.04版本拷贝文件没有遇到问题,今天新装了Ubuntu20.04无法直接拖拽或者拷贝粘贴。 1安装open-vm-tools sudo apt-get autoremove open-vm-tools sudo apt-get install open-vm-tools-desktop sudo reboot2禁用Wayland sudo gedit /etc/gdm3/…

大创项目推荐 深度学习 YOLO 实现车牌识别算法

文章目录 0 前言1 课题介绍2 算法简介2.1网络架构 3 数据准备4 模型训练5 实现效果5.1 图片识别效果5.2视频识别效果 6 部分关键代码7 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于yolov5的深度学习车牌识别系统实现 该项目较…

正确使用@Resource

目录 1 怎么使用Resource?1.0 实验环境1.1 通过字段注入依赖1.2 bean property setter methods (setter方法) 2 打破岁月静好(Resource takes a name attribute)2.1 结论2.2 那我不指定呢?【结论&#xff1…

自己买域名还是通过域名中介购买域名比较好?

选择直接购买域名还是通过域名中介购买,主要取决于你的具体需求、预算和所面临的风险。下面是一些考虑因素,帮助你做出决定: 直接购买域名的优势: 1.成本较低:如果域名未被注册,直接在域名注册商处注册…

十分钟让我带你入门Pandas基础使用

如何导入 通常,我们按如下方式导入: In [1]: import numpy as npIn [2]: import pandas as pdPandas的基本数据结构 Pandas 提供了两种类型的类来处理数据: Series: 保存任何类型数据的一维标记数组 such as integers, strings, Python obj…

R语言lavaan结构方程模型在生态学研究中的应用介绍及要点回顾

除了一般的线性回归外,SEM可以用于探究:测量不变性(Measurement invariance)、多组模型(Multiple group modelling)、潜在增长模型(Latent growth modeling)、非线性混合模型(Nonlin…

MySQL如何创建存储过程

工作中有时候需要自己去创建存储过程,然后调用存储去获得一些数据等,接下来就给大家介绍下MySQL如何创建存储过程。 语法: CREATE PROCEDURE 存储程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 …] 过…

【保姆级教程】如何在 Windows 上实现和 Linux 子系统的端口映射

写在前面 上次分享【保姆级教程】Windows上安装Linux子系统,搞台虚拟机玩玩,向大家介绍了什么是虚拟机以及如何在Windows上安装Linux虚拟机。对于开发同学而言,经常遇到的一个问题是:很多情况下代码开发需要依赖 Linux 系统&…

Mac 配置 Aria2

文章目录 1. Aria2 安装1.1 安装 brew1.2 安装 Aria2 2. 配置 Aria22.1 创建配置文件 aria2.conf 和空对话文件 aria2.session2.2 编辑配置文件 aria2.conf 3. 开机启动设置3.1 创建用户启动文件3.2 管理自启动项 4. 配置 BT tracker 自动更新4.1 XIU2/TrackersListCollection …

zheng项目:从零到一打造全方位J2EE企业级开发解决方案

zheng项目:从零到一打造全方位J2EE企业级开发解决方案 摘要: 在当今快速发展的企业级应用开发领域,一套高效、稳定且可扩展的解决方案对于企业的成功至关重要。zheng项目旨在提供一套全面的J2EE企业级开发解决方案,从前端模板到自…

Java基于微信小程序高校体育场管理小程序

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

视频批量剪辑,轻松平均分割视频并保留片段中的音频,高效管理视频

在这个信息爆炸的时代,视频已经成为了我们获取和分享信息的重要渠道。不论是制作短视频、教育课程、还是商业广告,我们都需要对视频进行精细化的编辑。然而,面对大量的视频素材,如何进行高效、便捷的批量剪辑呢? 第一…

【蓝桥杯嵌入式】RTC——实时时钟

一、RTC简介 RTC RTC—real time clock,实时时钟,主要包含日历、闹钟和自动唤醒这三部分的功能,其中的日历功能我们使用的最多。日历包含两个32bit的时间寄存器,可直接输出时分秒,星期、月、日、年。 从Cubemx里的配置…

DasViewer中,像下图山坡是选择拟合平面还是自定义平面?还是其他的基准面?

问题如图 如若山坡是计算斜面的土方,可以选择用拟合平面模式,该模式适用斜坡。 DasViewer是由大势智慧自主研发的免费的实景三维模型浏览器,采用多细节层次模型逐步自适应加载技术,让用户在极低的电脑配置下,也能流畅的加载较大规模实景三维模型,提供方…

3D雷达和相机联合标定:一种灵活且精确的基于目标的外参标定方法

3D雷达和相机联合标定:一种灵活且精确的基于目标的外参标定方法 论文链接:https://arxiv.org/pdf/2307.15264.pdf 附赠自动驾驶学习资料和量产经验:链接 摘要 本文介绍了3D雷达和相机联合标定:一种灵活且精确的基于目标的外参…

驾校数字化转型:驾校小程序开发服务革新

在信息技术飞速发展的今天,各行各业都在寻求数字化转型的路径。驾校行业也不例外,通过开发小程序,驾校能够为学员提供更加便捷、高效的服务,同时也能提升自身的管理效率和市场竞争力。 驾校小程序的优势 驾校小程序的开发&#…

【学习】软件验收测试,能否选择第三方检测机构进行测试?

随着信息技术的快速发展,软件已经成为各行各业中不可或缺的一部分。为了保证软件的质量和稳定性,验收测试成为了软件开发过程中至关重要的一环。那么,第三方软件测试机构可以做验收测试吗?我们一起来看下今日的分享。 一、验收测…

2024.4.3-day08-CSS 盒子模型(溢出显示、伪元素)

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 作业 2024.4.3-学习笔记css溢出显示单行文本溢出显示省略号多行文本溢出显示省…

Spring boot微服务分布式框架Rouyi Cloud权限认证

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期热门专栏回顾 专栏…

【opencv】示例-asift.cpp 对两张图片之间进行仿射特征比对

#include <opencv2/core.hpp> // 包含OpenCV核心功能的头文件 #include <opencv2/imgproc.hpp> // 包含OpenCV图像处理功能的头文件 #include <opencv2/features2d.hpp> // 包含OpenCV特征检测相关功能的头文件 #include <opencv2/highgui.hpp> // 包含…