次の機能によって定義される「使い捨て」デザインパターンに沿っていくつかのクラスを作成することを考えています。
- インスタンスは、いくつかのタスクを実行するために使用されます。
- インスタンスはタスクを1回だけ実行します。メソッドを2回呼び出そうとすると
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();
}
}
質問:
- これには名前がありますか?
- パターンまたはアンチパターン?