![]() |
singleton vs static
Чем singleton лучше статичного класса (т.е. у которого все методы и переменные static)?
|
Ответ: singleton vs static
Две разные вещи, по разному используются.
Имхо, их сравнивать нельзя никак. Тот же синглтон - имеет статик переменную в себе, но указывает на дин объект, который при обращении инициализируется. В статик полностью же объекте, инициализацию делать геморнее - нужен вызов функции инициализации вручную. Но не в этом суть. То же "вкл/выкл" делать для статик класса проще, с больше экономией памяти и более удобным использованием, чем для синглтона. Зависит от ситуации, и где и для чего нужно заюзать. |
Ответ: singleton vs static
Ну допустим есть класс MyCl
Если он синглетон: PHP код:
PHP код:
Но многие почемуто используют первый. |
Ответ: singleton vs static
delete - удаляет объект, или указатель? Если объект - то это не разумно имхо. Суть такого синглтона, это инициализация лишь для совершения определённых действий, и затем разрушение. Имхо, весьма извратный подход, и не удобный.
Я просто на C# сижу. Второй вариант, естественно проще. Но учитывай разницу, что в первом у тебя в памяти не будет постоянно висеть объект, а во втором варианте будет, и нужно будет вызвать либо Initialize, либо делать то же самое что в первом варианте, только уже в теле статических функций. Что технически будет то же самое что и первый вариант, только с одним минусом - каждый вызов будет пересоздавать объект, что не позволяет делать последовательного вызова функций с одним созданием и удалением. Но юзабилити имхо лучше у второго варианта. |
Ответ: singleton vs static
Цитата:
Цитата:
а в таком нет: статик: Код:
class myClass Код:
class myClass |
Ответ: singleton vs static
А так нельзя?
Код:
class myClass |
Ответ: singleton vs static
Цитата:
ну и потом - нельзя Цитата:
|
Ответ: singleton vs static
Ех, вот жеж неудобства с С++.
В C#, это выглядит так. static: Код:
class MyClass { Код:
class MyClass { Но конечно, многим религия не позволяет юзать static'и.. Кстати, Den, зачем ссылку удалил? http://habrahabr.ru/blogs/refactoring/103681/ Тут отлично описываются разница их. И кстати да, много отличным поинтов подмечено. Но суть больше в том что люди начинают сравнивать singleton'ы как альтернатива static'ам, но это не так, т.к. это две схожие но различные сущности. Singleton хорош в виде объекта, для расширения, наследия и т.п. Но если это не нужно, так зачем клепать ещё? |
Часовой пояс GMT +4, время: 16:58. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot