是否有任何设计模式只允许特定类新增其他特定类

时间:2011-04-21 16:00:25

标签: java design-patterns inner-classes

不使用内部类

我希望只有A类才有权使用新的B类,但我不想使用内部类,因为在其他类中有一个A类数组,我无法改变它

还有另一个类保存了B类Array的引用,当我将类B更改为innerClass时会导致错误,因为命名空间已更改。我无法改变这门课程

1 个答案:

答案 0 :(得分:3)

如果A类和B类是同一个包中唯一的类,那么将B类包的构造函数设为私有就可以达到你想要的效果。

控制构造的典型方法是将B的构造函数设为私有并添加一个静态工厂方法,也许是一个接受A实例的方法?

将B更改为接口并使A创建实现B的内部类是另一种选择。