proxy模式
前几天看了一下websharp的源程序,特别关注了里面的AOP的实现,发现它主要采用的是proxy模式实现,具体而言采用的是远程代理的方式,又勾起了我对设计模式的兴趣。其实很早以前就关注设计模式了,可惜一直没怎么弄懂,就这么一直拖着。看了websharp中的aop实现后,觉得设计模式还真是十分的有用,就仔细在网上找了一些关于proxy模式的文章,总算是对这个模式有点了解了。
所谓proxy模式,就如同现实生活中的中间人一样;还记得笑傲江湖中令狐冲拿曲谱去见任盈盈的那一幕嘛?曲谱先是给了绿竹翁,可绿竹翁不会弹,于是就把曲谱给了幕后的任盈盈,在整个事件中,任盈盈都没有露过面的,其实绿竹翁在这里就充当着中间人的角色,就如同是一个proxy。如果绿竹翁不道破他不会弹,而是直接把曲谱给任盈盈,那么就是一个完完全全的proxy了;外人只听到了琴音,只知道那是一个曲谱,至于是谁弹的,恐怕都会认为是绿竹翁吧。
如果用软件来实现,弹琴就可以放在接口中,作为接口的一个方法,同时也是实体类任盈盈和代理类绿竹翁的一个方法。令狐冲就是客户端了,他把曲谱交给绿竹翁,让他去弹,绿竹翁试着去弹,但他发觉自己功力不够,于是就交给实体类任盈盈去处理,最后实体类完成了这一操作,而客户端令狐冲呢,自然不会去关心谁弹的,只要听到了琴音,证明自己是无辜的就可以了。
proxy模式大概就是这样了,proxy模式其实是23个模式中十分简单的一个,十分容易掌握。就写到这了,网上有很多不错的关于proxy模式的说明,有兴趣的朋友可以去看看《java与模式》,或者是到吕震宇的blog去看看,他整理的非常看,文笔也不错,网址是http://www.cnblogs.com/zhenyulu/category/6930.html。
所谓proxy模式,就如同现实生活中的中间人一样;还记得笑傲江湖中令狐冲拿曲谱去见任盈盈的那一幕嘛?曲谱先是给了绿竹翁,可绿竹翁不会弹,于是就把曲谱给了幕后的任盈盈,在整个事件中,任盈盈都没有露过面的,其实绿竹翁在这里就充当着中间人的角色,就如同是一个proxy。如果绿竹翁不道破他不会弹,而是直接把曲谱给任盈盈,那么就是一个完完全全的proxy了;外人只听到了琴音,只知道那是一个曲谱,至于是谁弹的,恐怕都会认为是绿竹翁吧。
如果用软件来实现,弹琴就可以放在接口中,作为接口的一个方法,同时也是实体类任盈盈和代理类绿竹翁的一个方法。令狐冲就是客户端了,他把曲谱交给绿竹翁,让他去弹,绿竹翁试着去弹,但他发觉自己功力不够,于是就交给实体类任盈盈去处理,最后实体类完成了这一操作,而客户端令狐冲呢,自然不会去关心谁弹的,只要听到了琴音,证明自己是无辜的就可以了。
proxy模式大概就是这样了,proxy模式其实是23个模式中十分简单的一个,十分容易掌握。就写到这了,网上有很多不错的关于proxy模式的说明,有兴趣的朋友可以去看看《java与模式》,或者是到吕震宇的blog去看看,他整理的非常看,文笔也不错,网址是http://www.cnblogs.com/zhenyulu/category/6930.html。