- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
Possible Duplicates:
Difference between static class and singleton pattern?
What is the difference between a Singleton pattern and a static class in Java?
你好我不清楚单例类和静态类有什么区别?谁能举例说明一下?
最佳答案
单例类:单例类是每个类加载器只能存在单个实例的类。
静态/帮助类(只有静态字段/方法的类):不存在此类的实例。只有字段和方法可以作为常量或辅助方法直接访问。
以下引用自此blog "Static classes in Java"很好地描述了它。该博客也有解释相同的示例:
单例示例:
public class ClassicSingleton {
private static ClassicSingleton instance = null;
private ClassicSingleton() {
// Exists only to defeat instantiation.
}
public static ClassicSingleton getInstance() {
if (instance == null) {
instance = new ClassicSingleton();
}
return instance;
}
}
静态类示例:
/**
* A helper class with useful static utility functions.
*/
public final class ActionHelper {
/**
* private constructor to stop people instantiating it.
*/
private ActionHelper() {
// this is never run
}
/**
* prints hello world and then the users name
*
* @param users
* name
*/
public static void printHelloWorld(final String name) {
System.out.println("Hello World its " + name);
}
}
那么这两个示例有什么区别,为什么我认为第二种解决方案更适合您不想或不需要实例化的类。首先,如果您想创建一个类的一个实例,单例模式非常有用。对于我的助手类,我们真的不想实例化该类的任何副本。您不应该使用 Singleton 类的原因是,对于这个帮助类,我们不使用任何变量。如果单例类包含一组我们只想要一组的变量并且方法使用这些变量但在我们的辅助类中我们不使用除了传入的变量(我们将其设为最终变量)之外的任何变量,那么单例类将很有用.出于这个原因,我不相信我们想要一个单例实例,因为我们不想要任何变量,也不想要任何人实例化这个类。因此,如果您不希望任何人实例化该类,通常是如果您有某种帮助器/实用程序类,那么我将使用我称之为静态类的类,它是一个具有私有(private)构造函数的类,并且仅包含静态方法而没有任何任何变量。
我的回答 here 也引用了相同的答案
关于java - 单例类和静态类的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3714971/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!