gpt4 book ai didi

c# - 仅从一个地方进行类实例化的模式?

转载 作者:太空狗 更新时间:2023-10-30 00:06:24 24 4
gpt4 key购买 nike

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com