![]() |
1
9
我的建议是:
然后重写
|
![]() |
2
3
实际上,没有办法确保IStore的每个实现都会引发一个事件。您可以有一个具有Put方法的抽象类,但这并不意味着您可以在抽象类的子类中有一个Put方法,该子类完全忽略抽象类的方法。 最后,最好的方法 鼓励 事件的引发是通过抽象类来编写开发人员应该使用的方法。那样的话,他们就得走了 不 使用它 |
![]() |
3
2
您需要让抽象类从接口实现Put方法。还可以添加抽象方法,如putimpl,如下所示:
|
![]() |
4
1
是的,您应该使用抽象类而不是接口。 如果您决定使用一个实现接口的抽象类,它不会阻止其他开发人员实现自己的接口版本,这最终不会引发事件。 也就是说,即使使用抽象类也不会强制其他开发人员使用您的方法,因为它们可能会覆盖您的方法。 我认为最好的方法是使用模板方法:
实际存储必须实现doput方法,返回一个布尔值,指示Put操作是否成功。事件将从Put方法引发,该方法是公开可见的。 |
![]() |
5
0
如果你真的需要使用一个接口,那么新的 PostSharp 2 可以做方面继承。不幸的是,要获得这项功能,你至少需要购买200美元的个人许可证。 有了这样一个方面,您将把它放在接口中声明的方法上,并且接口的所有实现都将继承它。 |
![]() |
6
0
一些注意事项:我确实将其设置为受保护的,因此所有派生类都必须实现它,但客户端代码不能调用它。 |
![]() |
7
0
编写抽象类以包装
如果你想实现
这不
力
实现者可以做任何事情;但是它明确地建立了一个期望
|
![]() |
Pikachu620 · 可以对事件列表进行排序吗? 2 年前 |
![]() |
makerbaker · 取消选中框Javascript后重置输入值? 2 年前 |
![]() |
sam_rox · 在Matlab ODE中使用事件内部的两个条件 6 年前 |
![]() |
Santosh · javafx中的按键事件 6 年前 |
![]() |
KarLito · 删除或切换Highcharts上的事件 6 年前 |
|
JWoods4 · 读取击键并放入文本框 6 年前 |
![]() |
Everett Kaser · 在事件处理程序中绘制到NSView 6 年前 |