可能重复:
Difference between static class and singleton pattern?
Java中哪个更好,
实现公共静态方法,例如
Factory.createLoginRequest()
或实施Singleton模式,如
Factory.getInstance().createLoginRequest()
(Boths将返回一个Request对象。)
哪一个更好,为什么?
答案 0 :(得分:7)
取决于。
选择单身人士,因为:
使用静态方法,因为:
答案 1 :(得分:7)
:
注意类的简单静态实例和单例之间的区别:尽管单例可以实现为静态实例,但它也可以延迟构造,在需要之前不需要任何内存或资源。另一个值得注意的区别是静态成员类无法实现接口,除非该接口只是一个标记。因此,如果类必须实现由接口表示的契约,那么它实际上必须是单例。
答案 2 :(得分:0)
这取决于。 Singleton概念考虑了对象初始化的限制。换句话说,singleton对象必须是运行时中单例类的 only 实例。但是,如果您只需要创建某些类族的对象,那么请使用工厂方法模式。
答案 3 :(得分:0)
我会选择Singleton,因为它允许您使用Java的面向对象的功能,如继承(方法覆盖),这对静态方法不起作用。