设计模式之我吾-代理模式的理解
来源:互联网 发布:适合程序员的名字 编辑:程序博客网 时间:2024/04/30 23:38
杜思波最近啊!一直在研读设计模式相关书籍,深感设计模式是程序设计之良药也,为什么这么说呢?因为我读完几个模式之后啊,深深赶到其中的乐趣。
设计模式中有很多种模式概念,我们一个个来逐个讲解。
这次我们要讲解我对代理模式的理解,首先我们要了解代理模式的基本概念,我们先来讲一个小故事来轻松轻松。从前有一个秀才,十分好学,少年时光基本用在四书五经上了,可是转眼青年了,书是读了不少,但是意中人却无一个,这可急坏了秀才,如何是好啊!乡里乡亲的也有好心人,她是一个媒婆(以前专门给人介绍对象的人叫媒婆),名叫花姑,她也是个热心肠的人,看见秀才眉清目秀的还没有个意中人心里也十分想给秀才介绍一个,于是就在暗地里面物色着合适对象,不经意间的一个早上在河边看到一个姑娘,那个生的水灵哦!!于是急忙上前打听姑娘的情况,方知姑娘 年芳18,还未许配人家,这下可把花姑给乐坏了!心想这下秀才有戏了,下午花菇赶紧回家和秀才说起此事,秀才也是兴奋的不得了,可是问题又来了,什么问题?秀才自幼饱读诗书,是个十足的读书人,对男女感情之事甚少触及,因此都不知道如何和姑娘交流,这个可着急坏了花姑了,为了能成全两人,花姑想了一个办法,由她来给两人牵线,给他们传递信息,待到时机成熟之后再见面谈婚论嫁。于是花姑和秀才约定好了该说什么不该说什么。定下来以后,花姑就去传达秀才的美意,姑娘知道秀才对自己有意思,也托花姑传递自己对秀才的好感,这样来来去去,半年之后,两人终成眷属了。真是感人啊~~~现代社会还有这等好事否?o(∩_∩)o...~~~~~
好了故事讲完了,我们回归正题来讲设计模式中了,其实上面的故事从侧面就映射除了设计模式中的一个模式-代理模式。
秀才:委托者
花姑:代理
姑娘:被告知者(同时也是委托者)
该做什么不该做什么:定义约定接口
代理模式中牵涉到上述三个概念,秀才作为一个(委托者),委托(代理)花姑去告诉姑娘(被告知者)自己的意愿,而花姑呢则按照秀才约定好的规则(接口)去告诉姑娘秀才的意愿。这样来回就让秀才和姑娘两人建立起了感情,但是这个过程两人并没有参加进来,而是通过花姑作为代理来传递的。
这个就是代理模式工作的流程。
下述给出代码:
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace 设计模式_代理模式
- {
- class Program
- {
- static void Main(string[] args)
- {
- MM plmm = new MM();
- plmm.MMName = "美女女孩";
- Proxy Proxy1 = new Proxy(plmm);
- Proxy1.Givedolis();
- Proxy1.GiveFlowes();
- Proxy1.GiveMoney();
- Console.ReadLine();
- }
- }
- class pursuit : Ifun //秀才
- {
- MM plmm=null;
- public pursuit(MM name)
- {
- plmm = name;
- }
- public void Givedolis()
- {
- Console.WriteLine(plmm.MMName+":秀才送给你针");
- }
- public void GiveFlowes()
- {
- Console.WriteLine(plmm.MMName+":秀才送给你线");
- }
- public void GiveMoney()
- {
- Console.WriteLine(plmm.MMName+":秀才送给你布料");
- }
- }
- class Proxy:Ifun //花姑
- {
- pursuit GG = null;
- public Proxy(MM name)
- {
- GG = new pursuit(name);
- }
- public void Givedolis()
- {
- GG.Givedolis();
- }
- public void GiveFlowes()
- {
- GG.GiveFlowes();
- }
- public void GiveMoney()
- {
- GG.GiveMoney();
- }
- }
- class MM//姑娘
- {
- private string MMname = null;
- public string MMName
- {
- get { return MMname; }
- set { MMname = value; }
- }
- }
- //行为接口
- interface Ifun
- {
- void Givedolis();
- void GiveFlowes();
- void GiveMoney();
- }
- }
- 设计模式之我吾-代理模式的理解
- 设计模式,我理解的代理模式
- 理解设计模式之代理模式
- 理解js设计模式之代理模式
- 理解js设计模式之代理模式
- 我学设计模式 之 代理模式
- 设计模式之我理解
- 我的Java设计模式-代理模式
- 我理解的设计模式之适配器模式
- 我理解的设计模式之观察者模模式
- 我理解的java设计模式之单例模式
- 设计模式理解-代理模式
- 我的设计模式学习之路3(动态代理)
- 我理解的设计模式
- 我理解的设计模式:工厂模式
- 我所理解的设计模式(C++实现)——代理模式(Proxy Pattern)
- 我所理解的设计模式(C++实现)——代理模式(Proxy Pattern)
- 我所理解的代理模式
- 经常用到的DML
- c# winform问题 如何在textbox中判断输入的是字母还是数
- 监控Java应用程序Windows内存使用情况
- mssql ,case ,when,then
- GridView CSS的完整样式表
- 设计模式之我吾-代理模式的理解
- 怎么清空datagridview中的数据
- Json的使用
- 用One-JAR简化应用程序交付
- USB 3.0现场展示惊人速度:307MB/s
- 系统知识
- 2008.08.22 晴
- C#字符串函数
- 深入浅出之正则表达式