题
什么是一些真正的世界的地方,呼吁代表们?我很好奇是什么情况或模式都存在这种方法是最好的解决方案。没有代码必需的。
其他提示
一般情况: 当一个国家元首的死亡,美国总统通常没有时间去参加葬礼 个人。相反,他派遣一个代表。这往往委托 副总统,但是有时的副总裁不可用的 总统必须发送给别人,如国务卿或 甚至第一夫人。他不想要"硬线"他的委托 当局一个单一的人;他有可能委托的这个责任 谁能够执行正确的国际协议。
总统定义在推进什么样的责任将被授权 (参加葬礼的),什么样的参数将会通过了(表示慰问 友好的话),并什么价值,他希望得到回(良好的会)。他然后 分配一个特定的人以受委派的责任 "运行"作为他担任主席的进展。
在编程方案: 你经常面对的情况下需要执行特定行动,但是你不知道 推进其方法,或者即使其对象,你会想要呼吁 来执行它。
例如: 一个按钮可能不知道其中的一个或多个对象需要得到通知。而不是线电按钮以一个特定的 对象,你会连接的按钮,一个代表然后解决 该委托一个特定的方法当程序执行。
一个常见用途的各位代表的通用名单是通过行动的代表(或其匿名的同等)创建一个线foreach操作:
myList.Foreach( i => i.DoSomething());
我还找到所谓代表非常有用的,在搜索或修剪一个清单:
myList.FindAll( i => i.Name == "Bob");
myList.RemoveAll( i => i.Name == "Bob");
我知道你说过没有代码要求,但是我发现更容易表明其用处,通过代码。:)
结合的事件,事件处理程序通常是你首先介绍代表们...你甚至不知道你在用他们,因为代表被包裹在处理类。
如果你有兴趣看到如何在委托模式是用在现实世界的代码,可可在Mac OS X.可可是苹果的首选的UI的工具包,为编程在Mac OS X,和编码在目标C它的设计,以便每个用户界面组件的目的是要扩展通过国代表团,而不是继承或其他装置。
更多信息,我建议你检查出是什么苹果已经说关于与会代表 在这里,.
我有一个项目,该项目使用win32蟒蛇。
由于各种原因,某些模块用odbc.py 访问的数据库,以及其他模块的-pyodbc.py.
有一个问题,当有功能需要使用两种模块。它有一个连接的对象,通过它作为一个论点,但它必须知道是否使用数字.dbiDate或时间表示倍。
这是因为odbc.py 预计,作为价值在SQL陈述,日期为影.而dbiDate pyodbc.py 预期日期时间值。
一个进一步的并发症是连接创建的对象odbc.py 和pyodbc.py 不允许设置一个额外的领域。
我的解决方案是包连接的对象返回的odbc。odbc(...)和pyodbc.pyodbc(...)通过委托类,其中包含所需时间表示的功能价值的一个额外的领域,并且其代表的所有其他领域的要求的原始连接的对象。
我有同样的问题,你去了这个网站为一个答案。
显然,我没有理解它更好,即使我脱脂通过实例,在这个线程。
我发现一个伟大的使用对于代表现在,我读到: http://www.c-sharpcorner.com/UploadFile/thiagu304/passdata05172006234318PM/passdata.aspx
这可能看起来更显而易见的新的用户,因为形式更复杂的通过值比ASP.NET 网站与GET/POST(查询)..
基本上你义委托其需要 "文本 文本" 作为参数。
//Form1
// Class Property Definition
public delegate void delPassData(TextBox text);
// Click Handler
private void btnSend_Click(object sender, System.EventArgs e)
{
Form2 frm= new Form2();
delPassData del=new delPassData(frm.funData);
del(this.textBox1);
frm.Show();
}
//摘要:定义代表实例新的窗体2类,分配funData()功能来代表,在你的文本的代表。展示的形式。
//窗体2
public void passData(TextBox txtForm1)
{
label1.Text = txtForm1.Text;
}
//摘要:简单地采取"文本框"txtForm1作参数(定义在你的委托)和分配标签的文本为文本的文本。
我希望这启发了一些用于代表们:)..
一个快速的谷歌搜索了这个 http://en.wikipedia.org/wiki/Delegation_pattern .基本上,任何时候,你使用对象将它转发的电话另一个对象然后你们委派.