Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Статические классы или объекты?
Покинул форум
Сообщений всего: 231
Дата рег-ции: Окт. 2011
Помог: 5 раз(а)
[+]
Доброго всем дня.
Тема в общем-то уже обсуждалась, на англоязычных сайтах видел сами рассуждения по этому поводу, а именно создания экземпляра класса, но конкретного ответа именно на мой вопрос я не нашел.
Какие минусы использования чисто статических классов?
Я просто смотрю, вот в моей всей системе есть базовые классы, составляющие основу, ну или ядро, как угодно.
Эти классы в общем-то существуют в одном-единственном экземпляре (при поддержке Registry), зачем тогда вообще объекты мне нужны?
Пока что выходит, что я вообще могу обойтись без единого экземпляра класса, просто нет необходимости.
Значит ли это, что я могу отказаться от объектов?
Возможно, я недальновиден и не вижу минусов такой архитектуры, вот в этом то как раз и заключается вопрос.
Спасибо.
OrmaJever
Отправлено: 19 Февраля, 2013 - 21:47:50
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
_Dark_ пишет:
Какие минусы использования чисто статических классов?
Если класс чисто статический то он может существовать только в одном экземпляре, а этого иногда не хватает.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
_Dark_
Отправлено: 19 Февраля, 2013 - 21:48:59
Частый гость
Покинул форум
Сообщений всего: 231
Дата рег-ции: Окт. 2011
Помог: 5 раз(а)
[+]
OrmaJever пишет:
Если класс чисто статический то он может существовать только в одном экземпляре, а этого иногда не хватает.
То есть, если класс используется только в одном экземпляре и мне не нужны магические методы — то я могу смело использовать чисто статический класс?
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Блин меня терзают сомнения что есть преймущество у обьектов, но блин вспомнить не могу!
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
DelphinPRO
Отправлено: 19 Февраля, 2013 - 22:01:52
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
_Dark_
вы неправильно подходите к реализации. Систему нужно сначала спроектировать до мельчайших подробностей. Тогда вы точно будете знать что вам нужно в классе, а что нет, и спокойно сможете выбрать способ реализации.
----- Чем больше узнаю, тем больше я не знаю.
OrmaJever
Отправлено: 19 Февраля, 2013 - 22:09:34
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
DelphinPRO а я например не совсем согласен, очень часто спроэктируешь всё, затем приступаешь к реализации и понимаешь что здесь нужно что-то добавить, тут нужно что-то переделать, а там и вовсе удалить и по мере написния кода всё меняется, может даже кардинально. Моя подпись в какой-то степени об этом.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
_Dark_
Отправлено: 19 Февраля, 2013 - 22:12:39
Частый гость
Покинул форум
Сообщений всего: 231
Дата рег-ции: Окт. 2011
Помог: 5 раз(а)
[+]
DelphinPRO пишет:
_Dark_
вы неправильно подходите к реализации. Систему нужно сначала спроектировать до мельчайших подробностей. Тогда вы точно будете знать что вам нужно в классе, а что нет, и спокойно сможете выбрать способ реализации.
Я вот и проектирую как раз ее. Мне не понравилось то, что для того чтобы работать с классом нужно создавать объект, а потом еще через реестр получать его где нужно. Решил по другому сделать, через статические классы, просто не укладывается то, что вроде бы для работы с классом нужен объект, а теперь можно вообще без него обойтись.
У меня ситуация как у OrmaJever, есть какие-то сомнения в том, что я делаю все правильно, я поэтому и спрашиваю, потому что подозреваю, что не все так просто и возможно я что-то упустил. (Добавление)
OrmaJever пишет:
DelphinPRO а я например не совсем согласен, очень часто спроэктируешь всё, затем приступаешь к реализации и понимаешь что здесь нужно что-то добавить, тут нужно что-то переделать, а там и вовсе удалить и по мере написния кода всё меняется, может даже кардинально. Моя подпись в какой-то степени об этом.
Согласен с вами, я уже раз 5 точно все с нуля начинал, потому что процесс разработки доходил до такого момента когда дальше уже был тупик. Зато эти разы точно пошли на пользу, учитываю все, что не нравилось, с каждым разом все лучше и лучше. Главное перфекционистом не стать, да и в этот раз уже все серьезней, есть конкретные сроки.
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
OrmaJever, возможно. когда я писал свой велик - тоже переписывал его несколько раз с нуля. Он так и не был завершен.
Спустя некоторое время захотелось вернуться к написанию. Но в этот раз я начал с карандаша и бумаги (образно говоря , на самом деле редактор блок-схем ) Пару недель по вечерам после работы разрабатывал систему. В результате получилось творение на 7 листах A4. И самое главное - я теперь точно знал как будет работать моя система, и оставалось просто описать это кодом.
Проектирование - важный этап создания приложения.
ps да, кстати, каркас системы наконец дописан и работает.
осталось подрихтовать и выкинуть ибо коммерческие заказы все же предпочитаю делать на CI
----- Чем больше узнаю, тем больше я не знаю.
LIME
Отправлено: 19 Февраля, 2013 - 22:41:33
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
я в своем велосипеде на котором уже крутится не один десяток сайтов в основном использую статические методы
это оправдано
кстати не понял какая связь между статическими методами и магическими
их везде можно пользовать
OrmaJever пишет:
Блин меня терзают сомнения что есть преймущество у обьектов, но блин вспомнить не могу!
наверное наследование
раньше с этим были траблы
но теперь вместо self можно юзать static
и нет проблем с поздним связыванием (Добавление)
LIME пишет:
основном использую статические методы
вообщето пока только их и приходилось пользовать
другого не надо было пока (Добавление)
хотя это разговор ниочем
если понимать что есть статические члены класса(и статические переменные в ф-ции)
то этого вопроса не возникнет
caballero
Отправлено: 19 Февраля, 2013 - 22:48:23
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
А разве в PHP есть статические классы?
Цитата:
Блин меня терзают сомнения что есть преймущество у обьектов, но блин вспомнить не могу!
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
LIME пишет:
кстати не понял какая связь между статическими методами и магическими
Ну например когда вызывается конструктор или деструктор? Или методы __invoke и __toString ?
Есть конешно и исклчения, например __callStatic, но большая часть магических методов работает только с обьектами.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
LIME
Отправлено: 19 Февраля, 2013 - 23:16:31
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
конструктор деструктор это понятно
а почему тустринг нельзя?
caballero пишет:
А разве в PHP есть статические классы?
)))
OrmaJever
Отправлено: 19 Февраля, 2013 - 23:25:01
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.