当前位置: 首页 > news >正文

好素材网站汝城县网站建设公司

好素材网站,汝城县网站建设公司,站长统计app,wordpress 文章页面显示全部一、外观模式 概述 外观模式#xff08;Facade Pattern#xff09;隐藏系统的复杂性#xff0c;并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式#xff0c;它向现有的系统添加一个接口#xff0c;来隐藏系统的复杂性 这种模式涉及到一…一、外观模式 概述 外观模式Facade Pattern隐藏系统的复杂性并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式它向现有的系统添加一个接口来隐藏系统的复杂性 这种模式涉及到一个单一的类该类提供了客户端请求的简化方法和对现有系统类方法的委托调用 主要解决 降低访问复杂系统的内部子系统时的复杂度简化客户端之间的接口 何时使用 1、客户端不需要知道系统内部的复杂联系整个系统只需提供一个接待员即可 2、定义系统的入口 优缺点 优点 减少系统相互依赖提高灵活性提高了安全性 缺点 不符合开闭原则如果要改东西很麻烦继承重写都不合适 1. 各个角色介绍 1.1 外观Facade 提供一个简化的接口封装了系统的复杂性。外观模式的客户端通过与外观对象交互而无需直接与系统的各个组件打交道 1.2 子系统Subsystem 由多个相互关联的类组成负责系统的具体功能。外观对象通过调用这些子系统来完成客户端的请求 1.3 客户端Client 使用外观对象来与系统交互而不需要了解系统内部的具体实现 2. UML图 ​ 我们将创建一个 Shape 接口和实现了 Shape 接口的实体类。下一步是定义一个外观类 ShapeMaker。ShapeMaker 类使用实体类来代表用户对这些类的调用。Main 类使用 ShapeMaker 类来显示结果 3. 具体例子和代码 角色分配 Shape形状接口 Rectangle实现形状接口的长方形类Circle实现形状接口的圆形类Square实现形状接口的正方形 ShapeMaker外观类 3.1 抽象组件及其实现类 Shape package com.vinjcent.prototype.decorator;/*** author vinjcent* description 形状接口* since 2024/3/15 16:23*/ public interface Shape {/*** 形状绘制动作*/void draw();} Rectangle package com.vinjcent.prototype.facade;/*** author vinjcent* description 长方形* since 2024/3/20 16:32*/ public class Rectangle implements Shape {Overridepublic void draw() {System.out.println(Rectangle::draw());}} Circle package com.vinjcent.prototype.facade;/*** author vinjcent* description 圆形* since 2024/3/20 16:36*/ public class Circle implements Shape {Overridepublic void draw() {System.out.println(Circle::draw());}} Square package com.vinjcent.prototype.facade;/*** author vinjcent* description 正方形* since 2024/3/20 16:34*/ public class Square implements Shape {Overridepublic void draw() {System.out.println(Square::draw());}} 3.2 外观类 ShapeMaker package com.vinjcent.prototype.facade;import io.swagger.annotations.ApiModelProperty;/*** author vinjcent* description 外观类* since 2024/3/20 16:35*/ public class ShapeMaker {ApiModelProperty(圆形)private final Shape circle;ApiModelProperty(长方形)private final Shape rectangle;ApiModelProperty(正方形)private final Shape square;public ShapeMaker() {circle new Circle();rectangle new Rectangle();square new Square();}public void drawCircle() {circle.draw();}public void drawRectangle() {rectangle.draw();}public void drawSquare() {square.draw();}} 3.3 测试主函数 package com.vinjcent.prototype.facade;/*** author vinjcent* description 外观模式* since 2024/3/20 16:38*/ public class Main {public static void main(String[] args) {// 创建一个外观类ShapeMaker shapeMaker new ShapeMaker();// 绘制圆形shapeMaker.drawCircle();// 绘制长方形shapeMaker.drawRectangle();// 绘制正方形shapeMaker.drawSquare();}} 测试结果 4. 使用场景 为复杂的模块或子系统提供外界访问的模块子系统相对独立预防低水平人员带来的风险
http://www.zqtcl.cn/news/888891/

相关文章:

  • 网站建设的相关技术网站的购物车怎么做
  • 免费建设公司网站腾讯云域名购买
  • 淘宝客网站应该怎么做网页浏览器推荐
  • 怎样做影视网站不侵权商丘专业做网站
  • 哪个网站做刷手最好鹤壁 网站建设
  • 设计接单子网站安徽网站开发推荐
  • 网站建设制作 优帮云怎样注册商标申请
  • 网站怎么做交易市场苏州吴江做网站公司
  • wordpress的字体禁用优化设计的答案
  • 网站建设开发五行属性如何做二级域名网站
  • 珠海做网站的公司介绍最近的新闻大事
  • 手机网站开发解决方案石碣镇网站建设
  • 保定网站建设公司哪家好app开发公司好吗
  • 网站域名备案证书网页素材大宝库
  • 沈阳网站制作的公司哪家好wordpress您访问的网页出错
  • 南京做公司网站有什么网站用名字做图片大全
  • 网站正在建设中页面wordpress 折叠文章
  • 广西建设科技协会网站手工做环保衣的网站
  • 怎么免费做网站教程开发专业网站
  • 鹿邑网站设计公司什么网站可以免费做找客户
  • wordpress模板站如何安装wordpress 查询语句
  • 给窗帘做网站淄博周村学校网站建设公司
  • 关于志愿者网站开发的论文做什么网站开发好
  • 做电影网站如何规避版权做新年公告图片的网站
  • 网站修改后怎么上传济南网络员
  • 家居seo整站优化方案怎样开平台软件
  • 深圳网站关键词网站做视频转流量
  • 做网站如何配置自己的电脑精准防恶意点击软件
  • 单页网站 挣钱深圳高水平网站制作
  • 网站建设哪几家好一些打开浏览器历史记录