这实际上是非常基本的。也许有人提供了一个好的:) 解决方案。
有一个接口,比如 IComponent。
public interface IComponent {
string GetStatus();
}
如果当前时间在上午 12:00 和上午 12:10 之间,则IComponent
需要跳过一部分逻辑的几种实现。GetStatus()
但是还有其他实现IComponent
根本不关心任何时间间隔。
可以这么说:
public interface MyComponent : IComponent {
public string GetStatus() {
StringBuilder result = ...;
....
if (/*current time between 12:00AM and 12:10AM */)
result.Append("good enough");
else {
//calculate result
result.Append(/*calculated result*/);
}
...
return result.ToString();
}
}
所以我基本上需要的是封装
if (/*current time between 12:00AM and 12:10AM */)
return "good enough";
进入某个类,我们称它为'SomeBehavior'
或 smth,它可以在整个所需 IComponent
的实现中重用。
如果有帮助,此条件的含义if
是“跳过统计文件检查”,因此可以将其命名为例如 SkipStatFilesCheckBehavior。
虽然我也不确定命名,但这就是我在这里的原因(你可能会以某种方式命名它们比“行为”更合适)。实施它的最佳方法是什么?如何将“行为”更好地注入IComponent
- 实现(例如通过构造函数或其他任何东西)?如果我将来需要一些其他“行为”,该解决方案是否可以扩展?也许将来某些“行为”将需要引用IComponent
-implementation。