我想创建一个类库,它包含一个对象可以派生的接口,比如说ISaveableObject
。
现在,此接口应实现以下功能:
ToSaveableObject
(类似于System.Object.ToString()
方法)。 这两者之间的连接应该是ToSaveableObject
方法返回一个字符串,该字符串获取object[]
所需的所有属性并将其转换为可读字符串并将其返回。
我想通过使用接口或者更适合这种情况的抽象类,是朝着正确的方向前进吗?
可悲的是,接口无法实现构造函数,那么还有另一种方法可以实现我的目标吗?
答案 0 :(得分:1)
使用抽象基类来形成派生类的合约。你想要的更多的是一个实现细节,它不仅仅是一个接口所能提供的。
抽象基类看起来像这样
public abstract class SaveableObject {
protected object[] parameters = new object[0];
protected SaveableObjectBase(object[] objects) {
this.parameters = objects;
}
public abstract string ToSaveableObject();
}
所以现在派生类必须实现ToSaveableObject()
方法,并且可以访问构造函数中传递的对象以生成字符串。
如果ToSaveableObject
方法的构造算法对于所有派生类型都相同,那么您应该在基本抽象类中实现该方法,以便所有派生类都具有已经内置的功能。