我正在考虑按照“一次性”设计模式创建一些类,由以下特性定义:
- 实例用于执行某些任务。
- 一个实例只会执行一次任务。尝试调用该
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();
}
}
问题:
- 有这个名字吗?
- 模式还是反模式?