是否有任何设计模式只允许特定类新建其他特定类
在不使用内部类的情况下,
我只希望 A 类有权创建新的 B 类,但我不想使用内部类,因为其他类中有一个 A 类数组,我无法更改它
还有另一个类持有类 B 的数组的引用,当我将类 B 更改为 innerClass 时,由于命名空间发生更改,这将导致错误。我无法改变这个班级
without using Inner Class
i want only class A to have the right to new Class B but i don't want to use inner class, as there is a array of class A in other class which i can not change it
There is another class holding the reference of Array of class B which will cause error while i change class B in to innerClass, as the namespace is changed. i can not change this class
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果 A 类和 B 类是同一包中唯一的类,那么将 B 类包的构造函数设为私有将实现您想要的效果。
控制构造的典型方法是将 B 的构造函数设为私有并添加一个静态工厂方法,也许是一个接受 A 实例的方法?
将 B 更改为接口并让 A 创建实现 B 的内部类是另一种选择。
If Class A and B are the only classes in the same package then making the constructor of Class B package private would achieve what you want.
The typical way to control construction is to make B's constructor private and add a static factory method, perhaps one that takes in an instance of A?
Changing B to an interface and having A create inner classes that implement B is another option.