如果不直接引用,单例类是否会重复

本文关键字:是否 单例类 引用 如果不 | 更新日期: 2023-09-27 18:34:15

假设我有DLL程序集A,我以正确的方式实现了单例模式。让它成为类Manager,他的Instance静态属性返回唯一的实例。

假设我已经创建了 DLL 程序集 B,其中声明了类 Controller,并且该程序集引用了 A,Controller类使用 Manager ,好的。

最后,有一个控制台应用程序 C,其中我获得了对程序集 B 和类 Controller 的几个实例的唯一引用。

现在,问题来了。这些实例是否会在它们之间共享Manager类?

如果不直接引用,单例类是否会重复

现在,问题来了。这些实例是否会在它们之间共享管理器类?

是的,它们将共享同一个实例,因为所有这些程序集都位于单个 AppDomain 中。如果在引用其他程序集并尝试访问Manager.Instance中创建另一个应用程序 D(Web、控制台、桌面等),则将使用不同的实例。

答:是的,因为Manager是正确实现的单例。