我遇到了一个常见的情况,我的特殊课程有一个短暂的不可预测的生命周期。
我想抽象并在内部处理错误,因此外部代码不需要知道,也不关心正在处理的类的对象,或处于无效状态。
它有点类似于工厂模式,但它有一个额外的元素来抽象出瞬态错误。
是否有一个很好的软件模式来处理这个特定的问题,和/或是否有一个库框架来做它?
为了抽象出来,我使用了一个包装类,我可以使用外部代码,而不需要担心大多数错误,也不需要重新创建类。
我不知道任何框架或库,但如果你正在处理许多脆弱的类,那么以Nullable<T>
和Lazy<T>
的精神实现通用包装器可能是值得的。像这样的东西:
public class Fragile<T>
{
public Fragile(Func<T> valueFactory, Func<T, bool> isStillValid)
{
//...
}
public T Value { get /* TODO */ ; }
}