我正在考虑按照以下功能定义的“一次性”设计模式创建一些类:
execute
方法会引发异常。execute
方法之前修改属性。之后调用它们也会引发异常。极简主义的实现可能如下所示:
public class Worker
{
private bool _executed = false;
private object _someProperty;
public object SomeProperty
{
get { return _someProperty; }
set
{
ThrowIfExecuted();
_someProperty = value;
}
}
public void Execute()
{
ThrowIfExecuted();
_executed = true;
// do work. . .
}
private void CheckNotExcecuted()
{
if(_executed) throw new InvalidOperationException();
}
}
问题:
答案 0 :(得分:3)
这看起来像balking pattern的形式。
如果您的特定对象以这种方式行事似乎合乎逻辑,我认为它没有问题。
答案 1 :(得分:0)
Streams的行为方式有些类似(也可以使用Dispose / Close来锁定大多数操作)。所以这并不是令人惊讶的模式。