【发布时间】:2019-09-05 13:29:17
【问题描述】:
也许这是一个愚蠢的问题,但我想知道创建一个空接口作为“过滤器”类型是否是一种好习惯?
例如:仅对实现所需/特定接口的对象执行某些操作?
【问题讨论】:
-
那个“一些动作”仍然需要反射和类型转换。所以这似乎不是完成任何事情的理想方式。
-
在界面中定义“action”不为空!对实现接口的任何对象调用操作。
-
只有一种情况是有效的。这是将接口/空抽象类绑定到
ContentControl的属性并在运行时交换实现 -
我想定义“做一些动作”会很好。有些操作需要访问方法的某些属性,因此在这种情况下,使用空接口不是一个好习惯。
-
我想到的一个有效花瓶是,如果您想将不同的泛型类放入同一个集合中,例如
List<iMyInterface> collection并用例如class CarService : BaseService<Car>, MyInterface、class HouseService : BaseService<House>, MyInterface、class StuffService : BaseService<SomeotherStuff>, MyInterface填充它.