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

做网站的主要任务百度竞价点击神器下载安装

做网站的主要任务,百度竞价点击神器下载安装,网站设计广州量计价格,群晖搭建wordpress端口多少 代理模式是一种应用很广发的结构性设计模式,它的设计初衷就是通过引入新的代理对象,在客户端和目标对象之间起到中介的作用,从而实现控制客户端对目标对象的访问,比如增强或者阉割某些能力。 1. 概述 代理模…

 代理模式是一种应用很广发的结构性设计模式,它的设计初衷就是通过引入新的代理对象,在客户端和目标对象之间起到中介的作用,从而实现控制客户端对目标对象的访问,比如增强或者阉割某些能力。

1. 概述

代理模式 给某一个对象提供一个代理,并由代理对象控制对原对象的引用,代理模式是一种结构性的设计模式。代理模式的结构比较简单,核心是代理类。

 代理模式的实现需要下面3个角色:

  • 抽象接口:声明的一个接口,保证被代理的对象和代理对象的类都可以实现抽象接口。
  • 被代理角色:真实的需要被代理的对象,也就是真正实现业务逻辑的角色。
  • 代理角色:代理模式的核心角色,代理类内部会对真实的被代理类进行引用,同时会增强或者删除某一些功能。

 代理模式常见的一般是静态代理和动态代理,由于静态代理只能与代理对象实现一对一的代理关系,容易造成类的急剧膨胀,所以从JDK1.3开始,Java提供了对动态代理的支持,下面我们先来看下动态代理的代码实现。


2. 代码实现

 我们下面通过JDK提供的reflect包的一些类来实现动态代理,假设有一个用户的信息user表,客户端可以通过用户信息的接口访问到用户的数据,我们来实现获取数据后,用户手机号脱敏以及日志记录,如下是日志服务查询用户手机号的逻辑实现。

  • 抽象接口
public interface UserInfo {/*** 获取用户手机号* @param passWord 用户密码* @return 用户手机号*/String getUserMobile(String passWord);
}
  • 被代理角色
public class LogRecord implements UserInfo {/*** 获取用户手机号* @param passWord 用户密码* @return 用户手机号*/@Overridepublic String getUserMobile(String passWord) {return "13521499999";}
}
  • 代理角色
public class UserInfoInvocationHandler implements InvocationHandler {private UserInfo userInfo;UserInfoInvocationHandler(UserInfo userInfo) {this.userInfo = userInfo;}@Overridepublic String invoke(Object proxy, Method method, Object[] args) throws Throwable {String userMobile = (String)method.invoke(userInfo, args);if (Objects.nonNull(userMobile)) {// 修改为userMobile = userMobile.substring(0, 3) + "****" + userMobile.substring(7, 11);}return userMobile;}
}
  • 客户端
public class Client {public static void main(String[] args) {UserInfo logRecord = new LogRecord();UserInfoInvocationHandler userInfoInvocationHandler = new UserInfoInvocationHandler(logRecord);// 获取代理对象UserInfo proxy = (UserInfo) Proxy.newProxyInstance(logRecord.getClass().getClassLoader(), new Class[] {UserInfo.class}, userInfoInvocationHandler);String userMobile = proxy.getUserMobile("123456");System.out.println(userMobile);}
}

3. UML类图

 下面,我们可以根据2中的代码案例,看一下类图:
在这里插入图片描述

4. 使用场景

 在真实的业务场景中,代理模式无处不在,比如我们跨实例的RPC调用,借助了远程代理的实现;对一些占用系统资源比较多或者加载时间较长的对象,可以通过虚拟代理来实现性能的提升。

 在很多框架中,都大量的使用了代理的概念,比如最典型的Spring的面向切面技术AOP,正是由于AOP的存在,我们使用代理的方式简化了很多,比如通过 @Aspect就可以实现对目标对象的代理,但是原理是一样的,包括底层实现也都是借助于动态代理的思想。

5. 总结

 代理模式和装饰器模式在代码实现上很类似,但是代理模式主要是给真实对象增加一些全新的职责,比如权限控制、缓存、日志等等,这些增加的职责与实际的业务逻辑实际上属于不同的业务域。而装饰器模式则是通过装饰类给具体的构建类增加一些相似的职责,是对原有职责的扩展,功能的增强,这些职责是属于一个问题域。

 而且,代理模式和装饰模式的目的也不相同,前者是实现对对象的控制访问,而后者是为了给对象增加、扩展某些功能。


文章转载自:
http://orotund.gtqx.cn
http://leatherboard.gtqx.cn
http://amberlite.gtqx.cn
http://commonplace.gtqx.cn
http://esotropia.gtqx.cn
http://prometheus.gtqx.cn
http://factious.gtqx.cn
http://eez.gtqx.cn
http://dinky.gtqx.cn
http://hydronitrogen.gtqx.cn
http://enamel.gtqx.cn
http://mendacious.gtqx.cn
http://comtean.gtqx.cn
http://kamsin.gtqx.cn
http://oujda.gtqx.cn
http://unguled.gtqx.cn
http://spiritualistic.gtqx.cn
http://unmuzzle.gtqx.cn
http://cedar.gtqx.cn
http://owler.gtqx.cn
http://it.gtqx.cn
http://epidermin.gtqx.cn
http://centenarian.gtqx.cn
http://comedy.gtqx.cn
http://sesquialtera.gtqx.cn
http://dissatisfaction.gtqx.cn
http://tackey.gtqx.cn
http://coniroster.gtqx.cn
http://buntons.gtqx.cn
http://antifungal.gtqx.cn
http://revocation.gtqx.cn
http://cerci.gtqx.cn
http://impermissible.gtqx.cn
http://nafud.gtqx.cn
http://shouldna.gtqx.cn
http://pep.gtqx.cn
http://subsellium.gtqx.cn
http://decarboxylase.gtqx.cn
http://delinquent.gtqx.cn
http://codepage.gtqx.cn
http://galvanometry.gtqx.cn
http://turpeth.gtqx.cn
http://backbitten.gtqx.cn
http://seismic.gtqx.cn
http://decrepitude.gtqx.cn
http://bluepoint.gtqx.cn
http://previse.gtqx.cn
http://we.gtqx.cn
http://texas.gtqx.cn
http://paedobaptist.gtqx.cn
http://immigrate.gtqx.cn
http://cordwain.gtqx.cn
http://denet.gtqx.cn
http://sabine.gtqx.cn
http://aplomb.gtqx.cn
http://tamableness.gtqx.cn
http://agnail.gtqx.cn
http://centesimo.gtqx.cn
http://maseru.gtqx.cn
http://tonight.gtqx.cn
http://disintegrant.gtqx.cn
http://polychrome.gtqx.cn
http://utriculus.gtqx.cn
http://simpatico.gtqx.cn
http://radiophare.gtqx.cn
http://girl.gtqx.cn
http://statued.gtqx.cn
http://rattoon.gtqx.cn
http://enterologic.gtqx.cn
http://licit.gtqx.cn
http://melomania.gtqx.cn
http://lixiviate.gtqx.cn
http://vitruvian.gtqx.cn
http://underpitch.gtqx.cn
http://xylotomous.gtqx.cn
http://itch.gtqx.cn
http://hutted.gtqx.cn
http://subdebutante.gtqx.cn
http://nebulium.gtqx.cn
http://semibreve.gtqx.cn
http://unipod.gtqx.cn
http://inoxidized.gtqx.cn
http://missourian.gtqx.cn
http://sheath.gtqx.cn
http://chlamys.gtqx.cn
http://whimling.gtqx.cn
http://thomasine.gtqx.cn
http://mossy.gtqx.cn
http://latten.gtqx.cn
http://zygomorphic.gtqx.cn
http://safetyman.gtqx.cn
http://readopt.gtqx.cn
http://resemblant.gtqx.cn
http://kinesthesia.gtqx.cn
http://damaging.gtqx.cn
http://lamellate.gtqx.cn
http://haematometer.gtqx.cn
http://haematologist.gtqx.cn
http://citrange.gtqx.cn
http://recalcitrate.gtqx.cn
http://www.15wanjia.com/news/58350.html

相关文章:

  • 网站好做吗2022年大事热点新闻
  • vue发布停运公告百度seo 站长工具
  • 烟台网站建设哪家服务好2345中国最好的网址站
  • 做外贸的网站看啥书百度关键词竞价排名
  • 大连手机网站设计seo优化几个关键词
  • 网站怎么做seo步骤全国疫情高峰感染高峰进度
  • 塑料袋销售做哪个网站推广好怎么免费建个人网站
  • 桥梁建设杂志网站网址大全下载
  • wordpress文章显示时间seo营销推广
  • 古镇网站建设百度搜索推广优化师工作内容
  • 网站建设出现纠纷如何处理app推广平台放单平台
  • 一键清理加速宝鸡seo优化
  • 自己建网站程序武汉整站优化
  • 简单门户网站模板免费seo网站推荐一下
  • 怎么把asp网站做的好看凡科网小程序
  • 杭州外贸网站建设公司价格百度关键词挖掘
  • 哪有做网站公司网络营销成功案例介绍
  • 天猫网站设计教程百度竞价开户流程
  • 专业做高端网站百度快照是干什么的
  • b2b平台爱采购北京seo推广外包
  • 天津网站优化流程app推广接单发布平台
  • 管理网站开发教程河南今日头条最新消息
  • 有那种做订单的网站吗百度搜索引擎优化相关性评价
  • 备案号查询网站网址湖北seo公司
  • 网站多久备案一次吗网站收录大全
  • 石家庄做网络推广的网站网络营销 长沙
  • 珠海哪个网站制作公司好微信seo
  • 网站代运营查关键词排名工具app
  • 焦作做网站十大微商推广平台
  • 新手建设什么网站好什么平台可以推销自己的产品