限制对象的创建

本文关键字:创建 对象 | 更新日期: 2023-09-27 18:37:19

我这里有一个很奇怪的问题。我有A类,B类和C类。我想创建可以创建 A 类的 B 类对象。但是如何限制C类创建A类的对象。

一种方法是在类 B 中定义类 A,以便只有类 B 可以创建类 A 的实例,而类 C 无法访问类 A。

但是,我认为嵌套是一种错误的方式。

我们有什么办法限制对象的创建吗?是否可以使用属性和反射来帮助限制?如果可能的话,有推荐的方法吗?

请分享您的想法。提前谢谢。

限制对象的创建

可以将类 A 和 B 放在单个程序集中,并将类 A 的构造函数标记为内部构造函数。

这样,只有该程序集中的类才能创建类 A 的实例。

您可以将构造函数设为私有,并创建重新调整 A 实例的构造方法,此方法中的参数将是 B 的实例。

public class A
{
  private A (){}
    public static Instance(B BInstance)
    {
       A result = null;
       if (BInstance != null)
       {
         result = new A(); 
         //create here 
       }
       return result;
    }

    }