设计模式 —— 代理模式

一、简介

模式意图 :为其他对象提供一种代理以控制对这个对象的访问

代理模式是对象的结构模式,代理模式给某一个对象提供一个代理对象,并由此代理对象控制对原代理对象的引用。代理模式不应该让用户感觉到代理的存在,所以代理对象和原对象的对外的调用接口是一致的。

二、代理

CD 音乐商城,购买商品时链接本地mysql,由于架构调整需要链接阿里云上的数据库。可以用以下操作实现。当然现实中我们只需修改配置文件即可。

远程mysql代理

client调用

与委托模式区别

在C#语言层面上,是有将观察者模式用“事件委托”的方式来处理。
“委托”是一种应用方法的类型。
代理是一种用来解决问题的方法。
其实2者没有可比性。
从实现功能上讲,
代理是提供一种“一个类对另外一个类的控制权。”是类与类之间关系。
委托提供了“一种方法的执行会同时执行加载在上面的方法”。是方法与方法之间的关系。
委托可以代替代理,但是代理不能代替委托。
委托可以动态加载方法,代理不能实现。
委托对象所加载的方法不一定要属于同一个类。但是代理的类必须属于同一个类。