5

次の機能によって定義される「使い捨て」デ​​ザインパターンに沿っていくつかのクラスを作成することを考えています。

  • インスタンスは、いくつかのタスクを実行するために使用されます。
  • インスタンスはタスクを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();
    }
}

質問:

  1. これには名前がありますか?
  2. パターンまたはアンチパターン?
4

2 に答える 2

3

これは、バルキングパターンの形のように見えます。

特定のオブジェクトがこのように動作することが論理的であると思われる場合は、問題はありません。

于 2012-09-20T20:29:04.063 に答える
0

ストリームは多少似たように動作します(ほとんどの操作でストリームをロックするためにDispose / Closeを使用します)。したがって、これはまったく驚くべきパターンではありません。

于 2012-09-20T19:56:28.650 に答える