【发布时间】:2011-06-02 22:33:17
【问题描述】:
我想在我的父类的任何扩展类上强制实现单例模式。也就是说,我只希望每个子类都有一个实例(可通过 Child.INSTANCE 或类似的东西访问)。
理想情况下,我希望创建 Child.INSTANCE 对象,然后不创建 Parent 类型的其他对象。
目前我通过以下方式获取我的实例:
public class Child extends Parent {
public static final Child INSTANCE = new Child();
....
我想知道,Java 类可以以某种方式设为静态或其他什么吗?
谢谢=]
【问题讨论】:
-
回答部分问题:内部类可以设为静态;至于问题的其余部分,我不完全确定您正在寻找的东西是否可以完成
-
您是想在继承树中拥有每个类的单个实例,还是在整个树中只拥有一个类?
-
谢谢,不过我知道这一点。不幸的是,这会使我的课程过长——而且我认为我必须让 Parent 成为一个静态的内部......
-
这样做的目的是什么?可能有比尝试强制每个子类成为单例更好的设计。
-
@Jonathan 继承树中每个类的单个实例。 @jzd 这只是为了忠于状态模式,现有代码的某些部分( =[ )取决于他们看到的 Child 实例是唯一的这一事实。
标签: java singleton instance-variables