0

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

一种方法是在 Class B 中定义 Class A,这样只有 Class B 可以创建 Class A 的实例,Class C 不能访问 Class A。

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

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

请分享你的想法。提前致谢。

4

2 回答 2

1

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

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

于 2012-06-16T07:38:13.390 回答
0

您可以将构造函数设为私有,并创建返回 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;

    }


    }
于 2012-06-16T07:47:33.543 回答