Java 用简单的英语来说,什么是单身汉?
我已经在谷歌上搜索了大约一个小时,但我仍然不清楚单身是什么。有没有人能让我更清楚一点,或者发布一个代码示例 我所知道的是,一个给定类只能有一个实例。但是你就不能用一个静态类来实现吗 提前谢谢 singleton模式是一种限制 将类实例化为一个对象 请注意类的简单静态实例和 singleton:虽然singleton可以实现为静态 例如,它也可以惰性地构造,不需要内存或内存 资源,直到需要。另一个显著的区别是静态 成员类不能实现接口,除非该接口是 只是一个标记。因此,如果类必须实现一个契约 根据接口,它必须是一个单体Java 用简单的英语来说,什么是单身汉?,java,design-patterns,singleton,Java,Design Patterns,Singleton,我已经在谷歌上搜索了大约一个小时,但我仍然不清楚单身是什么。有没有人能让我更清楚一点,或者发布一个代码示例 我所知道的是,一个给定类只能有一个实例。但是你就不能用一个静态类来实现吗 提前谢谢 singleton模式是一种限制 将类实例化为一个对象 请注意类的简单静态实例和 singleton:虽然singleton可以实现为静态 例如,它也可以惰性地构造,不需要内存或内存 资源,直到需要。另一个显著的区别是静态 成员类不能实现接口,除非该接口是 只是一个标记。因此,如果类必须实现一个契约 根据接
从简单的纯英语版本中可以看出,单例类是一个只有并且只能有一个实例的类 但是你就不能使用一个静态类吗 不,这不是Java中的“静态”类。在Java中,“静态”类可以像任何其他类一样具有多个实例
static
关键字用于(类)表示嵌套类的实例未绑定到封闭类的特定实例。这意味着嵌套类中的表达式不能引用封闭类中声明的实例变量
在Java1.5(又名Java5)之前,Java中不支持单例设计模式。您只是用普通Java实现了它们;e、 g
/** There is only one singer and he knows only one song */
public class Singer {
private static Singer theSinger = new Singer();
private String song = "I'm just a singer";
private Singer() {
/* to prevent instantiation */
}
public static Singer getSinger() {
return theSinger;
}
public String getSong() {
return song;
}
}
Java1.5引入了enum
类型,可用于实现单例等
/** There are two Singers ... no more and no less */
public enum Singer {
DUANE("This is my song"),
RUPERT("I am a singing bear");
private String song;
Singer(String song) {
this.song = song;
}
public String getSong() {
return song;
}
}
singleton是一个带有私有构造函数的类,您只能得到它的一个实例。为了进一步解释为什么要使用这种编码风格,我建议您阅读本书中有关单件的章节
第五章是关于单身人士的检查维基和维基上的参考链接。如果一个类只有一个对象(实例),那么这个对象称为“单例”。你可能会认为只有一个对象,但这就是邪恶的开始。用简单的英语来说,单身是有史以来最糟糕的想法。可能的+1重复:终于有人用简单的英语给出了最简单的答案。你的代码示例让我明白了一切。非常感谢你