【发布时间】:2014-11-13 18:30:40
【问题描述】:
在研究 C# 中继承概念的实际使用时,我遇到了一个有趣的代码模式。非泛型接口I 多次继承泛型类型I<T>,每次都有不同的类型参数。 I 从 I<T> 继承的唯一原因是为了声明重载,I<T> 在代码中的任何地方都不会被引用,除了继承关系。举例说明:
interface Combined : Operations<Int32>, Operations<Int64>, Operations<double> {}
interface Operations<T> {
T Add(T left, T right);
T Multiply(T left, T right);
}
实际上,IOperations 接口有 30 个方法和大量的 XML 文档,因此不希望多次重复这些声明似乎是合乎逻辑的。我搜索了“重载重复设计”和“方法声明重用设计模式”等,但找不到任何有用的信息。
也许这种模式在支持多继承的语言(如 C++)中具有更深远的用途,其中还可以提供操作的实现。
tl;dr:你能说出上面代码示例中的设计模式吗?
【问题讨论】:
标签: templates design-patterns interface