Monostate模型模型的情况如何?

dev*_*ium 6 c# java design-patterns

我知道Singleton或Monostate是什么以及如何实现它们.虽然我可以看到Singleton的许多用途,但我无法想象我想让用户创建尽可能多的我的类实例的情况,尽管实际上只有一个真正存在于幕后.

有人可以帮我吗?我知道由于几个原因,人们应该远离这两种模式,但从理论上讲,Monostate模型会出现什么样的问题?

谢谢

ito*_*son 4

在我看来,单态不是一种可能在应用程序级别实现的模式,但在基础设施级别可能很有用。 对 Alex Martelli 用 Python 介绍模式的评论提供了一个说明性示例。

考虑一个 DCOM 或 .NET 远程处理场景,其中我们在服务器上有一个代表名为 Bob 的 Person 的对象。Bob 不是单例,因为 Bob 不是唯一的 Person。但多个客户可能同时与鲍勃交谈。在每种情况下,客户端都没有对 Bob(位于不同地址空间或不同机器上)的直接引用,而是具有代理对象。该代理对象对于该特定客户端来说是本地的。

因此,我们有多个代理对象,每个代理对象都有不同的身份,但每个代理服务器对象 Bob 的状态和行为,因此共享状态和行为。如果客户端 Alice 更新了 Bob 的状态(通过调用她的代理对象上的方法),那么客户端 Carol 将看到 Bob 行为的变化(当她调用她的代理对象上的方法时)。Alice 和 Carol 的代理对象不具有相同的对象标识,但具有相同的状态和行为:都代表 Bob。这两个代理展示了 Monostate 模式。

整个线程值得阅读以进行更详细的讨论,但对我来说,上面的内容才是重点。)