Есть ли какая-либо разница между классом Singleton и классом со всеми статическими членами (т. Е. Методами и атрибутами).
Я не смог найти ни одного случая, когда «весь класс статических членов» не достиг бы той же функциональностикак класс, правильно реализующий шаблон Singleton?
Например.java.lang.Runtime
- это правильный класс Singleton, тогда как java.lang.System имеет все статические методы для доступа и просто имеет приватный конструктор, чтобы избежать внешнего конструирования.Кто-нибудь знает, почему классы типа Runtime
сделаны Singleton
и не реализованы как java.lang.System
.
Это просто потому, что это будет более чистый дизайн (т.е. имитирует объект более реалистично), или есть какие-товыигрыш в производительности здесь?