Синглтон & ndash; анти-паттерн! Марка Рэдфорда (Overload Journal № 57 - октябрь 2003 г.) - хорошее прочтение о том, почему Синглтон считается анти-паттерном. В статье также обсуждаются два подхода к разработке альтернатив для замены синглтона.
Спасибо Педро д'Акино за определение этих других вопросов, которые дают ответы.
Основная идея заключается в том, что методы экземпляров структур не являются поточно-ориентированными, а статические методы - безопасными.
См. Следующие вопросы:
Это служебные методы, которые не обязательно должны принадлежать к этим классам . Это усиливает принцип единой ответственности
(править) Я запутал Java
( О статических членах ):
Статические члены класса могут использоваться для отдельные данные и поведение, которое независимо от идентичности объекта: данные и функции не меняются независимо от того, что происходит с объект. Можно использовать статические классы когда нет данных или поведения в класс, который зависит от объекта
Точка зрения поточно-ориентированной также является веской причиной.
Вы можете сделать это сами, если используете .NET 3.0, используя методы расширения:
public static class Extensions
{
public static bool IsLetter(this chr)
{
return char.IsLetter(chr);
}
}
, затем назовите это как: c.IsLetter ()
Или сделайте так, как хотите. То же при сортировке
Это решение реализации. Я не знаю, что все происходило в головах дизайнера фреймворка, но я считаю, что одна из причин состоит в том, чтобы разрешить сортировку массива настраиваемых типов с наименьшими усилиями.
Любой класс, реализующий iComparable, можно поместить в массив и отсортировать. Если бы это был метод массива, то мне пришлось бы написать новый тип массива для моего настраиваемого типа.
Кроме того, как отмечали другие, примитивные типы требуют такой конструкции массива.