我想定义一个类ClassA
,它可以作为参数传递给项目中的任何方法或类(全局范围)。但是,我想强制执行一个约束,以确保ClassA
只能在单个ClassB
的范围内实例化。换句话说,我希望类具有关于ClassA
的私有范围,同时仍然能够将该对象作为参数传递给在整个项目中分布的方法和类。
这可能吗?
答案 0 :(得分:6)
你可以使ClassA
抽象化,并将具体实现私有化为ClassB
(作为嵌套类)。
答案 1 :(得分:4)
您可以使用内部构造函数使ClassA成为公共抽象类。
然后,ClassB可以定义一个派生自此的类,并创建“真实”实例。这将阻止程序集之外的任何人生成ClassA类型。答案 2 :(得分:3)
如果我正确理解你想要做什么.....
使ClassB成为ClassA的嵌套类,并使ClassA的构造函数成为私有。