单例构造函数是幂等的吗?

时间:2013-07-25 15:09:33

标签: c# design-patterns

我仍然试图抓住这两个概念,所以如果我误解了一些善意的解释。

我已经阅读了关于幂等操作的一些消息来源(即SO entry),昨天我工作场所的一位资深开发人员发送了关于单身人士的article。在阅读我想知道的单例文章时,是一个正确实现单例模式幂等的对象的构造函数吗?

我的理解是,因为调用Singleton.Instance()(来自Singleton文章的第6节)超过1次不会改变任何东西,因为单例不能被多次实例化,但我并不完全确定我是否正确地将这两个主题结合起来。

1 个答案:

答案 0 :(得分:1)

当一个操作被描述为幂等时,那真正意味着用相同参数对它进行的任何调用都不会导致其他状态改变。例如,在REST API中,DELETE请求通常是幂等的,这意味着如果我后续请求删除资源并且它已经消失,我仍然会获得成功。因此,从用户的角度来看,似乎已经发生了,但实际上系统没有改变任何东西,只是简单地承认了请求,即

User: "Please delete resource A"

System: "Check status of resource A"

System: "Resource A found, deleting Resource A" || "Resource A not found"

System: "Return OK"

因此,将其纳入单身人士的概念,它的工作原理基本相同。您后续请求创建一个对象,但是,该操作只执行一次 - 其余的只是返回创建的实例。