【发布时间】:2018-07-17 17:25:24
【问题描述】:
这是一个学术问题。 背后可能存在 X-Y 问题,稍后我可能会单独发布。但我我实际上对这里的学术问题特别感兴趣。
我经常发现我有一组接口,它们都有共同的属性。我想定义一个基本接口来通用这些接口,部分原因是因为没有重复,部分原因是我可以在不知道确切类型的情况下传递对象并使用常用方法。
也许我有IFooRepository、IBarRepository等,我可以声明IRepository<TEntity>。
或者我有一个IHappyBot、ISadBot、IConfusedBot,所有这些都有IBot。
值得注意的是,没有任何类会直接实现这些基本接口——你永远不会有实现的东西只是IBot。
如果我们谈论的是类的层次结构,而不是接口,那么我会说“啊……基本的东西是一个抽象类”。
我可以对接口做些什么类似的事情来记录IBot 不会被直接实现的期望。
我感兴趣的一个方面是做一些你以后可以通过反射检测到的事情,所以当我test my DI setup 时,我可以说“啊,这个界面不是预期的是可绑定的,因为它是“抽象的”。
我自己主要关心 C#,但如果这个特性特别存在于其他主要语言中,那么听到它会很有趣。
【问题讨论】:
-
接口可以实例化吗?
-
@SAN 问题是关于实现,而不是实例化。
-
Is there anything analogous that I can do with the interface to document the expectation that IBot isn't going to get directly implemented.号
标签: c# interface abstract-class