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

发布于 2024-11-03 01:07:54 字数 158 浏览 0 评论 0原文

在不使用内部类的情况下,

我只希望 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猫弦 2024-11-10 01:07:54

如果 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文