静态方法和单例,选择哪一个?
可能的重复:
静态类和单例模式之间的区别?
Java中哪个更好,
实现公共静态方法,例如
Factory.createLoginRequest()
或实现单例模式,例如
Factory.getInstance().createLoginRequest()
(两者都会返回一个 Request 对象。)
哪一个更好,为什么?
Possible Duplicate:
Difference between static class and singleton pattern?
Which is better in Java,
implementing public static methods, like
Factory.createLoginRequest()
or implementing Singleton pattern, like
Factory.getInstance().createLoginRequest()
(Boths will return a Request object.)
Which one is better and why ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
来自维基百科:
from wikipedia:
这取决于。
选择单例,因为:
使用静态方法,因为:
It depends.
Choose singletons, because:
Use static methods, because:
这取决于。单例概念考虑了对象初始化的限制。换句话说,单例对象必须是运行时中单例类的唯一实例。但是,如果您只需要创建某个类系列的对象,那么请使用工厂方法模式。
It depends. Singleton concept considers a limitation on object initialization. In other words, singleton object must be the only instance of a singleton class in the runtime. But if you just need to create objects of some family of classes, then go with factory method pattern.
我会选择 Singleton,因为它允许您使用 Java 的面向对象功能,例如继承(方法重写),而这不适用于静态方法。
I'd go for the Singleton because it allows you to use Java's object-oriented features like inheritance (method overriding) which won't work for static methods.