我有一个函数返回相同种类的对象(查询结果),但没有属性或方法的共同点。为了有一个通用的类型,我使用了一个空接口作为返回类型,并在两者上“实现”。空接口代码味道?
这听起来不对。我只能抱紧自己,希望有一天这些类会有共同的东西,我会把这个共同的逻辑移到我的空白界面。然而,我并不满意,并在考虑是否应该采用两种不同的方法,并有条件地接下来打电话。这会是一个更好的方法吗?
我也被告知.NET Framework使用空接口进行标记目的。
我的问题是:是一个空的界面设计问题的一个强有力的标志或被广泛使用?
编辑:对于那些有兴趣的人,我后来发现,功能语言中的歧视工会是我尝试实现的完美解决方案。 C#对这个概念看起来并不友善。
编辑:我写了一个关于这个问题的longer piece,详细解释了这个问题和解决方案。
这些被称为[标记接口](http://en.wikipedia.org/wiki/Marker_interface_pattern),显然它们被广泛使用。 – BoltClock
阅读此http://msdn.microsoft.com/en-us/library/ms182128%28v=vs.80%29.aspx(我的意见需要不同的方法) – V4Vendetta
东西在类似的线http:// stackoverflow。 com/questions/835140/using-marker-classes-to-control-logic-flow – V4Vendetta