C#.Net 4.0
我想知道如何才能拥有一个只能从一个地方实例化的类。一个例子:
我有一个Provider 类。此类公开了一个名为 GetData 的方法。当调用 GetData 时,Provider 将实例化一个 Data 类,填充并返回它。 Data 类不能由除 Provider 之外的任何人实例化,因此访问数据的唯一方法是通过 Provider。一旦调用了 GetData 并且调用者收到了 Data 类实例,他应该能够访问该类的属性/方法。
如何做到这一点?是否有解决此类问题的模式?一个简短的样本将不胜感激。提前致谢!
最佳答案
听起来您正在寻找 factory pattern :
The factory pattern is a creational design pattern used in software development to encapsulate the processes involved in the creation of objects.
基本上,您的 Provider
类是控制 Data
类实例创建的工厂。
你可以做的一件事是将这两种类型放在它们自己的程序集中,并使 Data
的构造函数成为 internal
但类本身 公开
。这意味着任何引用程序集的人都将被迫使用 Provider
类来创建 Data
的实例(当然,除非他们使用反射)。
关于c# - 仅从一个地方进行类实例化的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3617470/