![]() |
1
2
因此,也许您要寻找的更多是接口实现:
|
![]() |
2
2
首先,你谈论的是窗体上的子元素,而不是窗体的实际子类。对吗? 因此,您希望删除窗体和按钮之间的依赖关系。这可以通过设计模式来解决。您可以让button实现一个如ibutton的接口。然后在表单中使用工厂类创建按钮,并返回IButton引用而不是MyButton。或者,使用依赖注入而不是工厂。 不管怎样,我看不出你所做的有什么好处,你能更详细地解释一下这个问题吗? |
![]() |
3
0
在您的示例中,按钮知道
你的代码应该是这样的
按钮根本不知道父窗体,只是一个普通的按钮。当然,家长登记了他们在
|
![]() |
4
0
如果你想让一个孩子对他父亲做点什么,父亲至少要知道孩子的存在。他不必知道细节,但是如果他应该对他的孩子做出反应,那么他需要一个事件处理程序、回调等,孩子会调用它。 这可以通过一个称为依赖倒置原理的基本原理来实现。依赖于外部类的类不应该依赖于具体的实现,而是依赖于实现的抽象。父母不应该需要一个特定的孩子,只需要一个看起来像一个并且行为像一个的孩子。出于同样的原因,孩子不必知道他们的特定父母,但是如果需要交互,孩子必须有某种方法来告诉父母事情,即使它不知道父母在听。 尝试一个包含ichild引用(按钮)和公共事件处理程序的父级(表单)。然后,创建一个实现ichild并具有可以引发的事件的子级。然后,您需要第三个类来创建(或给定)父级和子级,将子级赋予父级(作为ichild),并将子级的事件挂接到父级的事件处理程序。现在你的父母只知道它有一个孩子的样子,而你的孩子有一面旗子,当一些重要的事情发生时,他可以挥挥手,但不必知道谁在听。 |
![]() |
JOO · 使用udpClient从多个IP地址连续接收数据 2 年前 |
![]() |
Futterkiste · 函数比例图 2 年前 |
![]() |
user18789895 · 我应该如何验证WinForms应用程序? 3 年前 |
![]() |
beriscen · 如何使整个链接标签区域可点击? 3 年前 |
![]() |
lpmaxim · 当鼠标光标悬停在按钮上时,背景图像会移动 3 年前 |