限制对象的创建
本文关键字:创建 对象 | 更新日期: 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;
}
}