建设部网站设计资质查询做网站系统的答辩ppt范文

pingmian/2025/10/9 2:01:37/文章来源:
建设部网站设计资质查询,做网站系统的答辩ppt范文,做网站运营经理的要求,无锡建设公司网站目录 概述定义应用场景主要角色类图 详述基本代码应用实例符合的设计原则 总结 概述 定义 代理模式是一种结构型设计模式#xff0c;它允许通过一个代理对象来控制对原始对象的访问。代理对象可以在不改变原始对象的情况下#xff0c;增加一些额外的功能#xff0c;例如权限… 目录 概述定义应用场景主要角色类图 详述基本代码应用实例符合的设计原则 总结 概述 定义 代理模式是一种结构型设计模式它允许通过一个代理对象来控制对原始对象的访问。代理对象可以在不改变原始对象的情况下增加一些额外的功能例如权限验证、缓存等。 应用场景 代理模式常用于以下几种情况 远程代理代理对象控制对远程对象的访问例如远程服务调用。 虚拟代理代理对象代表了一些昂贵或资源消耗大的对象延迟加载原始对象。 安全代理代理对象控制对原始对象的访问权限例如权限验证。 主要角色 目标接口Subject Interface定义了目标对象和代理对象共同实现的接口或抽象类。目标接口规定了客户端可以通过代理对象访问的方法。 目标对象Real Subject实际执行业务逻辑的对象是代理对象所代表的真正对象。目标对象实现了目标接口代理对象将会委托目标对象执行具体的操作。 代理对象Proxy代理对象实现了目标接口并持有一个对目标对象的引用。代理对象在客户端和目标对象之间起到中介的作用它可以在调用目标对象之前或之后添加额外的逻辑以实现对目标对象的控制和管理。 客户端Client使用代理对象的对象。客户端通过代理对象来访问目标对象的方法而无需直接与目标对象交互。 在代理模式中客户端通过代理对象与目标对象进行交互代理对象在必要时会进行额外的处理。代理对象可以隐藏目标对象的具体实现细节提供额外的功能或限制访问权限从而实现对目标对象的保护和控制。 类图 详述 基本代码 被代理对象 public class RealSubject implements Subject {Overridepublic void doSomething() {System.out.println(RealSubject is doing something.);} }创建一个接口作为代理对象和目标对象共同实现的接口 创建接口的目的是定义代理对象和目标对象共同实现的契约或协议。这个接口定义了代理对象和目标对象之间的通信规范规定了代理对象需要实现的方法。 通过定义一个接口可以将代理对象和目标对象解耦使得它们可以独立开发和演化。代理对象和目标对象都实现了相同的接口这意味着它们具有相同的方法签名和行为可以互相替换使用。 public interface Subject {void doSomething(); }创建一个代理对象类实现目标接口并持有一个对目标对象的引用 代理对象充当了一个中间人的角色在客户端和真正执行任务的目标对象之间进行通信和协调。 代理对象并不是真正执行任务的人它只是负责管理和控制对目标对象的访问。代理对象可以在执行任务前后添加额外的逻辑或功能例如权限验证、缓存、日志记录等。 被代理对象才是真正执行任务的人它实现了具体的业务逻辑。代理对象在接收到客户端的请求后会将任务委派给目标对象被代理对象来执行。这样可以将任务的执行与具体的业务逻辑分离开来使得代理对象可以提供一些额外的服务或控制同时保持目标对象的独立性和可复用性。 public class ProxySubject implements Subject {private RealSubject realSubject;Overridepublic void doSomething() {if (realSubject null) {realSubject new RealSubject();}// 在这里可以继续对 realSubject 进行操作realSubject.doSomething();}// 其他代码... }注意代理类当中为什么要有一个判空的代码 第一、这段代码示例中的判空操作称为“延迟初始化”Lazy Initialization。延迟初始化是一种性能优化策略它推迟了对象的创建直到真正需要该对象时才进行。在代理模式的上下文中这种方式特别有用因为它允许系统延迟创建计算成本高或者资源消耗大的对象。比如 节约资源如果realSubject对象的创建成本很高例如需要大量内存或时间那么只有在实际需要使用realSubject对象时才创建它可以避免在realSubject尚未被使用时就占用宝贵的系统资源。 提高性能如果realSubject对象在程序运行期间可能根本不会被用到那么使用延迟初始化可以提高程序启动速度和运行效率因为避免了不必要的初始化开销。 第二、代理类通常负责管理实际对象的生命周期包括实际对象的创建。判空操作就是代理类确保只在首次需要时创建实际对象的一种方式。这样做的好处是代理类可以在不影响客户端使用的前提下控制实际对象的初始化过程。 第三、在实际应用当中是不应该有判空的因为实际应用当中是被代理类已经存在的是应该通过依赖倒置注入进来。 再次在这个里面判空除了可能想使用原有的被代理类还可能防止冲突的发生比如代理除了代理方法还有可能代理属性那么原有的被代理类当中的属性更改之后如果不判空再创建一个新的被代理类的对象就会发生冲突。这个的前提是在一个大类当中这个被代理类没有被回收掉。 客户端通过代理对象来请求执行任务并且代理对象会在必要时将请求传递给目标对象。 public class Client {public static void main(String[] args) {Proxy proxy new Proxy();proxy.doSomething();} }应用实例 业务场景一个追求者Pursuit通过代理Proxy向心仪的女孩SchoolGirl送礼物。 IGiveGift 接口定义了送礼物的行为包括送洋娃娃giveDolls、送鲜花giveFlowers和送巧克力giveChocolate。 public interface IGiveGift {void giveDolls();void giveFlowers();void giveChocolate(); }Pursuit 类追求者类实现了 IGiveGift 接口具体执行送礼物的动作。构造函数需要传入一个 SchoolGirl 对象表示追求者要送礼物的对象。 public class Pursuit implements IGiveGift {private SchoolGirl mm;public Pursuit(SchoolGirl mm){this.mmmm;}public void giveDolls(){System.out.println(this.mm.getName(),你好送你洋娃娃);}public void giveFlowers(){System.out.println(this.mm.getName(),你好送你鲜花);}public void giveChocolate(){System.out.println(this.mm.getName(),你好送你巧克力);} }Proxy 类代理类持有追求者Pursuit的引用并且对外提供与 IGiveGift 接口相同的方法。当调用代理的送礼物方法时实际上是调用追求者的对应方法。 它的构造函数接收一个 SchoolGirl 对象并创建一个 Pursuit 对象来初始化追求者。 public class Proxy {private Pursuit gg;private SchoolGirl mm;public Proxy(SchoolGirl mm){//代理认识被追求者this.ggnew Pursuit(mm);//代理初始化过程中实际是追求者初始化的过程}public void giveDolls(){gg.giveDolls();}public void giveFlowers(){gg.giveFlowers();}public void giveChocolate(){gg.giveChocolate();} }SchoolGirl 类被追求的女孩类拥有名字属性和相应的获取及设置方法。 public class SchoolGirl {private String name;public String getName(){return this.name;}public void setName(String name){this.namename;} }Client 首先创建了一个 SchoolGirl 对象 girlLili并设置了名字为“丽丽”。然后创建了一个 Proxy 对象 boyDL并通过代理对象调用送礼物的方法。客户端不需要知道实际对象Pursuit 类的实现细节只需要与代理对象交互。接触耦合。 public class Client {public static void main(String[] args) {SchoolGirl girlLilinew SchoolGirl();girlLili.setName(丽丽);Proxy boyDLnew Proxy(girlLili);boyDL.giveDolls();boyDL.giveChocolate();boyDL.giveFlowers();} }符合的设计原则 单一职责原则Single Responsibility Principle一个类应该只有一个引起变化的原因。在代理模式中代理类Proxy负责控制对实际对象的访问而实际对象如Pursuit类则专注于执行其核心业务逻辑。 开闭原则Open/Closed Principle:软件实体应当对扩展开放对修改关闭。代理模式允许在不修改实际对象代码的情况下通过代理类来扩展功能。例如可以添加新的代理类来实现不同的访问控制策略。 接口隔离原则Interface Segregation Principle:客户端不应该依赖它不需要的接口。在代理模式中代理类和实际对象都实现相同的接口IGiveGift客户端仅与该接口进行交互而不是直接与实现细节打交道。 依赖倒转原则Dependency Inversion Principle:高层模块不应该依赖低层模块两者都应该依赖于抽象抽象不应该依赖于细节细节应该依赖于抽象。在代理模式中客户端代码Client依赖于接口IGiveGift而不是具体的类Pursuit或Proxy这样就可以灵活地替换或修改具体的实现而不影响客户端。 合成复用原则Composite Reuse Principle:尽量使用对象组合而不是继承来达到复用的目的。代理模式中代理类通过包含一个实际对象的引用来实现功能而不是通过继承实际对象来扩展功能。 最少知识原则Least Knowledge Principle或迪米特法则Law of Demeter:一个对象应该对其他对象有尽可能少的了解。在代理模式中客户端不需要知道实际对象如何实现或者如何被访问的细节它只需要与代理对象交互从而减少了系统中各部分之间的耦合。 总结 代理模式是一种常用的设计模式它通过代理对象在保护和控制原始对象访问上起到中间层的作用。今天只讲了静态代理也就是在编译时就确定了代理对象和原始对象的关系下次会接着讲动态代理可以在运行时动态生成代理对象还有JDK动态代理和CGLIB动态代理的区别。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态链接做网站外链图南京网站制作公司招聘

实现功能 需求:在类的成员属性使用Autowirde注解注入容器中的对象。 实现思路 要实现这个功能。我们首先要思考一个问题:类与类的关系是在调用的建立的,还是说在创建对象的时候就就将建立了? ---我实现的方案是,在在程…

网站建设报告总结平面设计线上培训班哪个好

所谓的激活函数,就是李宏毅老师讲到的sigmoid函数 和 hard sigmoid函数 ,ReLU函数那些 现在一点点慢慢探索,会成为日后想都做不到的经历,当你啥也不会的时候,才是慢慢享受探索的过程。 有一说一,用chatGP…

河间市网站建设大连云app官方下载

Yocto .bb 文件字段解析 本文详细讲解了 Yocto .bb 文件中各字段的作用和用法,包括 SECTION、SRC_URI、SUMMARY 等,旨在帮助开发者更好地理解和使用 Yocto 构建系统。 目录 1. SECTION 字段 1.1 SECTION 的作用1.2 SECTION 的用法1.3 如何使用 SECTIO…

四平英文网站建设网站开发职业资格证书

今天给大家分享一个目前在小红书很火的AI绘画商单号案例。 首先给大家看看案例视频形态 这类视频内容非常简单,主要展示农家庭院的别致景色。通过AI绘画工具生成图片,再利用剪辑工具将画面增加动态元素,让整个视频逼真鲜活,加上…

做不锈钢的网站wordpress用户组设置

4.3 云开发文件存储 4.3.4 删除文件 在小程序端和云函数端,都可以调用API删除云空间中的文件,这两个API的参数和回调函数参数都是一样。每次调用API最多删除50个文件。使用方法如下代码所示: // 回调风格的API wx.cloud.deleteFile({ file…

域名大全免费网站app开发费用

在eclipse下构建maven项目,该项目由多个子模块组成。 1.创建一个父项目 NEW -->project-->maven-->maven Project,点击下一步,进入new maven Project的Select project name and location界面 ,什么也不做,直接…

快速网站备案多少钱网站建设的设计总结

一、学习目标 了解第一个C程序了解第一个C程序结构了解什么是注释了解什么是命名空间了解C语言的输出(如何在程序运行时显示内容)了解语句结束后需要使用什么符号表示结束 了解程序入口 目录 预备第一篇,使用软件介绍在这一篇,…

怎么做优惠卷网站seo排名网

文章目录 安装py2neo创建节点-连线关系图导入csv文件删除重复节点并连接边 安装py2neo 安装python中的neo4j操作库:pip install py2neo 安装py2neo后我们可以使用其中的函数对neo4j进行操作。 图数据库Neo4j中最重要的就是结点和边(关系)&a…

网站开发语言有什么招投标中网站建设评分标准

2021年10月,国务院印发《2030年前碳达峰行动方案》,明确提出要建设绿色低碳园区,并选择100个具有典型代表性的城市和园区开展碳达峰试点建设,在政策、资金、技术等方面对试点城市和园区给予支持。此后,碳达峰、碳中和正…

南京驰铭做网站公司南充网站建设费用

近年来,随着中韩交流的日益密切,韩语翻译在国内的需求呈现出不断增长的态势。无论是韩语笔译还是口译,其应用领域都非常广泛。那么,韩语翻译的价格是否高昂?翻译公司又是如何进行报价的呢? 在翻译领域&…

北京通州做网站的公司北京网站制作公司清远

文章目录 一、什么是死循环二、以fo循环示例三、如何避免死循环 一、什么是死循环 死循环就是循环语句的 循环布尔表达式 一直为true,没有终止循环的条件或者终止循环的条件根本不可能达成 二、以fo循环示例 /** 终止循环的条件根本不可能达成* 循环布尔表达式&a…

网站开发全程实例课本代码广东的网站备案

来源:数据观 概要:目前,中国的人工智能研究处于爆发期,行业巨头公司正逐渐完善自身在人工智能的产业链布局,而不断涌现出的创业公司将持续在垂直领域深耕深挖。 目前,中国的人工智能研究处于爆发期&#x…

天津市规划局官方网站建设项目做网站要会那些ps

Java 的异常 异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)Java程序在执行过程中所发生的异常事件可分为两类: Error: Java虚拟机无法解决的严重问题。如:JVM系统内部…

一个域名可以做中英文两个网站吗襄阳网站制作

数据来源:八月成交数据 数据初探 业务背景 数据来源行业:金融行业(根据应收利息和逾期金额字段来判断) 可以猜测: 业务主体:某互联网金融公司(类似支付宝)也业务模式:给…

网站建设公司找客户网站推广产品怎么做

emsp;emsp;栈的经典算法问题 一、括号匹配问题 emsp;首先看题目要求,LeetCode20.给定一个只包括’(‘,)’,‘{,’,[,]的字符串s,,判断字符串是否有效。有效字符串需满足: 1.左括号…

北京建设网站合同下载网页制作与网站建设宝典扫描版pdf

一、Beanutils中的copyProperties是我们在日常开发中常用的一个方法。 作用: 将a实体类中的属性赋值到b实体类中相对于的字段上 1.我们前端传参的时候我们后端通常会用vo实体类来接收,但是更新数据库的时候需要用do去操作 2.我们将vo的属性copy到do中可…

怎样打开网站制作ps软件下载要多少钱

假如一堆数据&#xff0c;每一个数据都有一个标志位&#xff0c;按照标志位值的不同进行划分为不同的组&#xff0c;进行归类。 代码如下&#xff1a; void chunzhongForm::traverseList(winProList &dataList) {int nSize dataList.size();for(int i 0; i < nSize; …

网站开发项目分析模板羽毛球网站建设网站

在IE浏览器中&#xff0c;当input获得焦点时&#xff0c;点击有unselectable"on"属性的标签时&#xff0c;不会触发onblur事件。加上该属性的元素不能被选中。< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">< html>< h…

景德镇市建设厅网站qq网页版在线登录

在我们的日常生活中&#xff0c;猫罐头是一种常见的宠物食品&#xff0c;但是有很多养猫的铲屎官都不知道应该如何为猫咪挑选一款合适且满意的猫罐头。作为经营一家宠物店7年的店长&#xff0c;我店里的猫猫最多的时候可以达到60多只&#xff0c;这些年来它们也吃过了很多种类的…

网站空间ip需不需要备案晋中住房保障和城乡建设局网站

在做项目中遇到一个问题 对某个参数赋值成功后页面中没有改变 经过多方查阅终于解决这个问题 跟大家分享一下 希望可以帮到你 方法1&#xff08;推荐&#xff09;&#xff1a;用JSON.parse(JSON.stringify(objectOrArray)) 通常是某个渲染的数组改变了层级较深的数据导致页面…