【生意多】-免费发布分类信息
当前位置: 首页 » 新闻 » » 正文

05、人人都会设计模式:代理模式--Proxy

放大字体  缩小字体 发布日期:2020-10-15 03:12:09    浏览次数:6
导读

  代理在生活中就太多了比如微商在朋友圈中很多时候都可以看到微商说城招代理「不需要货源不需要启动资金只需要一个电线c;好吧我口才不好没有人家吹的好」这类代理就是替卖家出售商品  遥想当年情窦初开「初中的时候」喜欢上了一个女子可是迫于害羞就给女孩子写了几封情书买了一束花「但是自己没有那个贼胆送」就让

  代理在生活中就太多了比如微商在朋友圈中很多时候都可以看到微商说城招全国代理「不需要货源不需要启动资金只需要一个电线c;好吧我口才不好没有人家吹的好」这类代理就是替卖家出售商品

  遥想当年情窦初开「初中的时候」喜欢上了一个女子可是迫于害羞就给女孩子写了几封情书买了一束花「但是自己没有那个贼胆送」就让我们班里一个和女孩认识的朋友交给她现在想来原来帮我送情书的女生就是我的代理呀「帮我完成我想要完成的事」~~嘻嘻。话说谁还干类似的事就在文章末尾点个赞

  其实就是现在的商店以前小的时候听家乡人叫代销店也是一种代理模式。细细一想跑业务的也是代理律师也是代理明星的助理就是代理京东送货机器人是代理共享”女友”,那个”女友”也是代理「你懂得」等等等等。不敢再说了再说万物都成代理了「不好意思又忘了吃药了」

  其实程序中使用的代理是非常多的我们在编写 MVC 业务的时候就可以使用代理模式「可以让客户端使用代理仿问接口」一般使用最多的是动态代理

  话说在高中期间小明看上了我们班一位女同学可是小明是一个害羞胆小的人「有贼心没贼胆」于是小明跑到我的跟前:Chain 哥我看上了咱们班的小倩你能帮我追一下吗 …. 。听小明巴拉巴拉一大堆本着哥们义气的我非常爽快的答应了就有了下面的追 MM 手段

  嘻嘻不知不觉又用到以前学到的简单工厂模式了「学以致用不错不错」我们把代理事情都放在工厂中去做这样客户端对代理是无感知的这也符合程序开发的正常逻辑

  想知道结局吗很不幸小倩也有点”白痴”我提醒好多次是小明喜欢她「其实我最多是代理小明送花等这些事情也就是说钱花小明的美女我来追」可是她最终还是看上我了「有点自恋」所以以后追 MM 的时候千万千万不要找代理「以上故事纯属虚构如有雷同那么小明以后就张点心吧」

  好了上面我们看到我们使用代理类直接继承了真实的类「这也是代理的一个变种」但是根据多用类组合少用继承的规则我们还是少用这种继承形式的代理

  1、代理的方法如果很多那么就要为每个方法都要代理规模大的程序受不了

  2、如果真实类中新添加一个方法或功能那么代理类中就一一对应的写出来这样不利于扩展并且增加代码维护成本

  动态代理就是代理类不是在代码中定义的而是根据我们的指示动态生成的「通过反射机制动态生成代理者对象」在编码阶段你从代码上根本不知道谁代理谁具体代理谁好吧太绕了直接看代码

  只需要在原有代码的基础上添加一个动态类并且删掉六耳猕猴类「动态代理来了小六你还不快撤」然后修改 Test 即可

  这个 Demo 使用动态代理实现的请大家自行使用静态代理实现本 Demo 一定要动手实践哦

  由于两个进程不能直接进行通讯「为了安全系统有进程隔离机制」所以两个进程之间是不能

  以上图是便于理解所以抽象出来一张图真实的 Binder 比这个过程复杂的多这牵扯到 java 层的 Binder native 层的 Binder 等等「这不是我们讨论的重点」方便我们理解我们可以认为客户端的进程拿到服务端的引用所以就可以调用服务端进程的方法了

  说了这么多这跟代理有个毛关系呢别急我们写一个 AIDL 的实例分析一下

  我们写一个简单的通过 Client 进程调用 Server 进程返回一个字符串功能为了方便起见我们直接在一个项目中创建「Server 开启在另一个进程中开两个 APP 进行通信大家可以自行试一下道理一模一样的」

  这里再说一点以上情况是针对 client 和 server 在两个进程间的通信如果 client 和 server 在一个进程中则 CustomAIDL.Stub.Proxy 就不会调用「在同一个进程中我自己就能调自己还代理个毛呀」不信以结果征服你

  其实通过上面的 AIDL 实验我们就可以知道 Binder 使用的就是远程代理模式Android 中的源码使用非常多我就不一一分析了「说的太多人会受不鸟」感兴趣的朋友可以自行分析我这里贴出一张图大家可以看

  教程大纲 版权声明:本文为博主原创文章,未经博主允许不得转载 PS:转载请注明出处作者: TigerChain地址: 本文出自 TigerChain 简书

  教程简介 1、阅读对象本篇教程适合新手阅读,老手直接略过 2、教程难度初级,本人水平有限,文章内容难免会出现问题,如果有问题欢迎指出,谢谢 正文 一、什...

  PS 转载请注明出处 作者:TigerChain「公号 TigerChain」 地址:juejin.im/post/5a3655 掘金:juejin.im/user/568bd2 教程简介 1、阅读对象 本篇教程适合新手阅读,老手直接略过 2、教程难度 初级,本人水平有限,文章内容难免会出现问题,如果有问题欢迎指出,谢谢 3、Demo 地址 Java Demo 地址:github.c...

  转载自中文翻译 谷歌C++风格指南 0.背景 0.1前言 C++ 是 Google 大部分开源项目的主要编程语言. 正如每个 C++ 程序员都知道的, C++ 有很多强大的特性, 但这种强大不可避免的导致它走向复杂,使代码更容易...

  的应用场景 在实际生活中,我们经常见到这样的场景,如:租房中介、售票黄牛、婚介、经纪人、快递、事务

  的大名,但是由于能力有限,一直不敢触碰。而今有幸将其都认识了。 2、开始有设计的理论了。在接触

  之前没有怎么想过设计方面东东,看到问题就立马动手解决,没有想到怎么样来设计更好,如何来是这块更加优化、漂亮。 3、开始考虑系统的可扩展性了。 4、在遇到问题后开始想有那个

  产生的原因 在面向对象系统中,有些对象由于某些原因,比如:对象开销太大、某些操作需要安全控制、或者要访问的对象在远程的机器上,直而采用接访问会给使用者或系统结构带来很多麻烦。现在,我们可以在访问此对象时添加一个对此对象的访问

  如想了解更多更全面的Java必备内容可以阅读:所有JAVA必备知识点面试题文章目录: JAVA必备知识点面试题 一、自定义注解 1、什么是注解? Jdk1.5新增新技术,注解。很多框架为了简化代码,

  提供有些注解。可以理解为插件,是代码级别的插件,在类的方法上写:@XXX,就是在代码上插入了一个插件。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。 注解分类: 元注解: 元注解是用于定义注解的注解,包括@Retention、@Target、@Inherit

  問:學習Objective-C的書籍?答:Effective objective-C 2.0编写高质量ios和OS X代码的52个有效方法Learn ObjectiveC on the Macby Mark Dalrymple and Scott Knaster, Apress.這本的內容是Objective-C跟一些基本的Cocoa Foundation framework,是學習Obj...

  使用openMV3与stm32进行通讯,想用openMV与stm32通讯,在网上找了一大圈,最后决定使用串口,参照这篇文章

  Android异常01----No package identifier when getting name for resource number 0x00000000 警告提示

  Android总结笔记04:仿QQ空间登录UI,解决软键盘弹出挡住输入框的问题laozhong110:这种方法 达不到 qq登入界面的 效果

  wz_080824101:请问,楼主,滑出页面时,是否是先缩小,在进行你的滑出动画呀??我就是那样,求请教!!

 
关键词: 代销模式
(文/小编)
打赏
免责声明
• 
本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:https://www.31duo.com/news/show-636448.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
 

(c)2016-2019 31DUO.COM All Rights Reserved浙ICP备19001410号-4

浙ICP备19001410号-4