【发布时间】:2016-09-11 12:44:54
【问题描述】:
我想创建一个类库,其中包含一个对象可以派生的接口,比如说ISaveableObject。
现在,这个接口应该实现以下功能:
- 从这个接口派生的对象应该有一个方法
ToSaveableObject(类似于System.Object.ToString()方法)。 - 它应该包含一个特定的构造函数,它以一个对象数组作为其参数。
这两者之间的联系应该是ToSaveableObject方法返回一个字符串,该字符串取object[]所需的所有属性,并将其转换为可读字符串并返回。
我想要使用接口是朝着正确的方向前进,还是抽象类更适合这种情况?
遗憾的是,接口无法实现构造函数,那么还有其他方法可以实现我的目标吗?
【问题讨论】:
-
使用继承自预期接口的抽象基类。你想要的是更多的实现细节,而不是接口所能提供的。
-
接口没有“应该实施”但也许“应该计划合同”
-
我不明白“应该有特定的构造函数”。 “可保存”或“可序列化”解决方案的世界从不需要“特定构造函数”,许多人至少希望没有 args ctor。有代码讨论会更好
-
所以现在有一个
ToString和一个ToSaveableObject,它们都返回一个描述它们被调用的对象的字符串。是不是过分了? -
ToString 一直感觉“人性化”,结果不能反向使用