Singleton + Proxy 模式+AOP
昨天正好培训了一下Remoting, 其实可以用一个realproxy来wrap所有的方法调用,并且可以做一些拦截.为此参考一下简单的代码
事实上,包含了singleton,proxy模式,呵呵
class Demo:MarshalByRefObject
{
public void SayHello()
{
Console.WriteLine("Hello,China");
}
private Demo()
{
}
private static Demo _ActInstance = new Demo();
public static Demo GetInstance()
{
DemoProxy dp = new DemoProxy(typeof(Demo),_ActInstance);
return (Demo)dp.GetTransparentProxy();
}
}
class DemoProxy : System.Runtime.Remoting.Proxies.RealProxy
{
public DemoProxy(Type tp,Demo target) : base(tp) { _target=target;}
private Demo _target;
public override System.Runtime.Remoting.Messaging.IMessage Invoke(System.Runtime.Remoting.Messaging.IMessage msg)
{
Console.WriteLine(">>> Inspecting Msg" + (msg as System.Runtime.Remoting.Messaging.IMethodCallMessage).MethodName);
return System.Runtime.Remoting.RemotingServices.ExecuteMessage(_target, (System.Runtime.Remoting.Messaging.IMethodCallMessage)msg);
}
}
其实Demo一定要从MBR继承,参考了don box 写的.net essential, 他提到了从MBR继承,.net clr 保证改类的方法不会被inline,这样就可以保证代理的正常工作. 如果从CBO继承,当然CBO是继承自MBR, proxy可以正常工作, 而且这时候new 一个CBO对象的时候,实际上该实例就是一个透明代理.
Singleton + Proxy 模式+AOP相关推荐
- aop区别 decorator_Decorator或Proxy模式;AOP拦截器
总结如下:过滤器实现方式在不保证功能前提下,从性能角度考虑有如下先后顺序:Decorator或Proxy模式:AOP拦截器. 考虑使用AOP拦截器时,最好选择那些受众面积比较广的功能,例如一些基础通用 ...
- Android之ActivityManager与Proxy模式的运用
二 Android中ActivityManager 从官方文档的介绍可以看到ActivityManager的作用: 是与系统所有正在运行着的Acitivity进行交互,对系统所有运行中的Activit ...
- Java设计模式(10)代理模式(Proxy模式)
理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣. Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,P ...
- Decorate和Proxy模式
Decorate模式 Decorate模式的几个常见的应用场景: throttle(函数节流) debounce(函数防抖) AOP 装饰者模式基本的套路就是在不改变原有的函数提供的功能的情况下,再次 ...
- 结构型模式之Proxy模式
1.意图 为其他对象提供一种代理以控制对这个访问 2.适用性 在以下情况下使用Proxy模式 (1)远程代理为一个对象在不同的地址空间提供局部代表. (2)虚代理根据需要创建开销很大的对象. (3)保 ...
- 【设计模式系列】结构型模式之Proxy模式
概要 有时候可能我们不希望暴露现有对象的所有接口,只希望公开其中部分接口,具体来说,比如我们有个对象具有一系列的方法接口,如果我们只需要这些接口中间的一小部分,那么我们没必要去创建这个对象本身,我们可 ...
- 关于《设计模式》这本书(三)——Proxy模式
今天随便写了一下Proxy模式,也许写得很不好.因为实际上我应用Proxy模式的次数并不是很多,如果有什么错误,请指出. 文章来源:http://dotnet.blogger.cn/sumtec/ar ...
- 如何使用Proxy模式及Java内建的动态代理机制
http://zhangjunhd.blog.51cto.com/113473/69996 1.Proxy模式 代理模式支持将某些操作从实际的对象中分离出来,通过它的代理类提供处理.这样便于修改和管理 ...
- Proxy模式简介和用例
在软件系统中,有些对象有时候由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),如果直接访问会给使用者或者系统结构带来很多麻烦,这时可以在客户程序和目标对象之间增加一 ...
最新文章
- html 文字只设计一段颜色,html – sphinx,reassuredtext:为单个字设置颜色
- cookie 和 token 都存放在 header 中,为什么不会劫持 token?____token和cookie的区别
- linux如何卸载conky,Linux Deepin 15.10.2 下折腾 简单自制的 Conky Conky-manager
- 一个月被曝五次数据泄露,ElasticSearch还行不行?
- 图片上传至服务器实现压缩
- 学习记录 java泛型资料
- Tomcat + Spring MVC + HttpClient:怎样使用PUT和PATCH方法传递数据
- python modules_python—模块-
- Unity 接入科大讯飞语音sdk
- 沟通CTBS助真科电子跨平台接入
- 经常使用Code 39条形码,你了解它吗? 今天就来看看什么是Code 39
- 四.响应解析——解析json格式
- ego-planner论文阅读笔记
- 百度站内搜索使用教程
- 微信小程序——打开地图 选择位置 完整功能实现代码(定位,检索周边,可移动选点,可搜索,腾讯地图API)
- 工大校园邮箱申请流程
- 药品大湾区分中心牵手易臣,OA系统助力机构高效办公
- 离散数学 群,环和域
- weblogic8.1 下载地址
- buck电路 dac stm32_嵌入式设计-基于STM32F334的BUCK同步降压数字电源设计-电路城论坛 - 电子工程师学习交流园地...
热门文章
- linux消息队列非亲缘,linux进程
- java禁止放大_java 所有组件缩放、放大
- 文件和参数一起上传_Spring boot的文件上传
- vim 撤销上一步操作_Linux笔记(4):vim入门
- Gmail进程信息转储分析工具pdgmail
- Unity中制作游戏的快照游戏支持玩家拍快照
- 广义hough变换matlab,matlab – 广义Hough R表
- CMU研究人员提出一种新的深部脑刺激方法,可延长帕金森病治疗效果
- “让技术做好事”,最特殊的创投在大湾区成立
- 2021未来科学大奖揭晓:SARS病原发现者、上海交大张杰教授等4人获得百万奖金...