一次性物品:是还是不是?

Sea*_*n U 5 c# oop design-patterns

我正在考虑按照“一次性”设计模式创建一些类,由以下功能定义:

  • 实例用于执行某些任务。
  • 一个实例只会执行一次任务。尝试调用该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();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 有这个名字吗?
  2. 模式还是反模式?

Guf*_*ffa 3

这看起来像是一种犹豫模式

如果您的特定对象以这种方式表现似乎是合乎逻辑的,那么我认为它没有问题。