gpt4 book ai didi

design-patterns - 软件中使用的设计模式有哪些现实生活中的例子

转载 作者:行者123 更新时间:2023-12-04 10:06:26 24 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

5年前关闭。




Improve this question




我目前正在阅读头先设计模式,虽然这本书很棒,但我也想看看这些在现实世界中是如何实际使用的。

如果您知道设计模式使用的一个很好的例子(最好在 OSS 程序中,以便我们可以看看:) 那么请在下面列出它。

最佳答案

对我来说,观察者模式的一个 ah-ha 时刻是意识到它与事件有多么密切的关联。考虑一个需要在两种形式之间实现松散通信的 Windows 程序。这可以通过观察者模式轻松实现。

下面的代码显示了 Form2 如何触发事件以及注册为观察者的任何其他类如何获取其数据。

请参阅此链接以获取出色的模式资源:
http://sourcemaking.com/design-patterns-and-tips

Form1 的代码:

namespace PublishSubscribe
{
public partial class Form1 : Form
{
Form2 f2 = new Form2();

public Form1()
{
InitializeComponent();

f2.PublishData += new PublishDataEventHander( DataReceived );
f2.Show();
}

private void DataReceived( object sender, Form2EventArgs e )
{
MessageBox.Show( e.OtherData );
}
}
}

Form2 的代码
namespace PublishSubscribe
{

public delegate void PublishDataEventHander( object sender, Form2EventArgs e );

public partial class Form2 : Form
{
public event PublishDataEventHander PublishData;

public Form2()
{
InitializeComponent();
}

private void button1_Click( object sender, EventArgs e )
{
PublishData( this, new Form2EventArgs( "data from form2" ) );
}
}

public class Form2EventArgs : System.EventArgs
{
public string OtherData;

public Form2EventArgs( string OtherData )
{
this.OtherData = OtherData;
}
}
}

关于design-patterns - 软件中使用的设计模式有哪些现实生活中的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com