我在这里有一个非常奇怪的问题。我有A类,B类和C类。我想创建B类的对象,它可以创建A类的对象。但是如何限制C类创建A类的对象。
一种方法是在 Class B 中定义 Class A,这样只有 Class B 可以创建 Class A 的实例,Class C 不能访问 Class A。
但是,我认为嵌套是一种错误的方式。
我们有什么办法限制对象的创建吗?是否可以使用属性和反射来帮助限制?如果可能的话,有推荐的方法吗?
请分享你的想法。提前致谢。
我在这里有一个非常奇怪的问题。我有A类,B类和C类。我想创建B类的对象,它可以创建A类的对象。但是如何限制C类创建A类的对象。
一种方法是在 Class B 中定义 Class A,这样只有 Class B 可以创建 Class A 的实例,Class C 不能访问 Class 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;
}
}