Ted Faison 在关于基于事件的软件设计的播客中提到 .NET、C++ 和 Java 事件语句中的“sender”和“self”对象,例如:
private void Button_Click(object sender, RoutedEventArgs e)
是用词不当,因为例如在上面的示例中,“发送者”实际上并不是产生事件的对象,而是代理,因为您不希望将应用程序紧密耦合。
我是不是理解错了(因为当我调试它时,“发件人”确实似乎是原始对象)。
或者这些语言中的常见事件模式(例如常见的点击处理程序)是紧密耦合的,但它们应该更加解耦,例如在复合应用程序中。
他还提到,例如,您不应该从 EventArgs 继承,因为它会导致类爆炸式增长,每个事件一个,它只传输几个变量。在他看来,很多时候,您可以发送一个字符串。他提到,这种观点与微软模式和实践所建议的相反。
对这些领域有什么想法吗?