给定一个接口,它应该是 Init to Run。必须运行初始化代码。
初始化是两个部分:一个依赖于配置,一个不依赖于配置。
如果他不想复制该代码,则可配置的必须调用另一个。
public interface IProcess
{
bool Init(out string error);
bool Init(ProcessConfiguration processConf, out string error);
bool Run(object message, out ErrorCode errorCode);
// ...
}
这是正确的实现:
public class ProcessGood : IProcess
{
public bool Init(out string error){
// Important Code
return true;
}
public bool Init(ProcessConfiguration processConf, out string error){
Init(out erreur);
// things about processConf
return true;
}
我的问题是由于存在 2 个 init 方法,没有很好地遵循一个调用另一个作为默认行为的需要。
有没有办法使用接口/虚拟/等来强制一个 Init 调用另一个?
一种不正确的实现示例:
public class ProcessBad : IProcess
{
public bool Init(out string error){
// Important Code
return true;
}
public bool Init(ProcessConfiguration processConf, out string error){
// Init(out erreur); // some one forgot to type this.
// things about processConf
return true;
}