Синглтон против статического предпочтения и дефекта - PullRequest
5 голосов
/ 02 августа 2009

Когда мы хотим развернуть веб-приложение, мы должны использовать одноэлементный объект или использовать статический вместо? Что является узким местом для использования каждого из них? Я должен знать о проблеме памяти, проблеме параллелизма и ...

P.S: что происходит с классом, который был только читаемым (должен использовать static или Singleton)

P.S 2: что происходит с классом, который был читаем и доступен для записи

Ответы [ 2 ]

3 голосов
/ 02 августа 2009

В конце концов, в вашем случае кажется, что одноэлементные / статические методы будут работать. Я так понимаю, в обоих случаях ваши вспомогательные методы чисты и не используют или не нуждаются в каком-либо состоянии. В конце концов, использование синглтона дает вам несколько дополнительных опций, таких как возможность издеваться. Используя класс, а не статические помощники, существует возможность развивать дизайн или, возможно, заменить другую стратегию и т. Д. В будущем. Со статическими помощниками вы в значительной степени застряли.

Поскольку ваши методы чистого параллелизма не будут и не могут быть проблемой, так как ни одно состояние не является общим.

2 голосов
/ 02 августа 2009

Статический: один экземпляр, общий для всех потоков - любой доступ к статическому члену будет вернуть тот же экземпляр. Нет ограничений на создание других экземпляров того же типа.

Singleton: один экземпляр для всего приложения. Никакие другие экземпляры этого типа не могут быть созданы в приложении.

...