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 :: позднее статическое связывание [4]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (4): « 1 2 3 [4]   

> Описание: ну фигли оно не работает
Мелкий Супермодератор
Отправлено: 17 Октября, 2012 - 14:48:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




0) Название - должно отражать своё действие. Поэтому и принято писать getInstance или instance
1) зачем здесь наследование?
2) когда нужно дофига синглтонов (суть глобальные данные), что может появиться идея наследоваться от них - стоит внимательно посмотреть на архитектуру, нужны ли они вообще, эти синглтоны.


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Октября, 2012 - 14:54:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Мелкий пишет:
когда нужно дофига синглтонов (суть глобальные данные)
Я говорил что просто пишу абстрактный класс, он - один, все обращения к нему - статические, создать объект от него - низзя... Чем это не удовлетворяет "свойствам" синглтона?
 
 Top
DlTA
Отправлено: 18 Октября, 2012 - 12:35:28
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Мелкий
0) не спорю. ...
1) минимизация кода
2) обычно это не которые модели, частенько требующие некой инициализации, чтения конфигов, которые для всех обращений однотипны, и чтоб каждый раз не тратиться на их повторное чтение и разбор, а попутно не плодить в памяти пачку одинаковых (не однотипных) объектов и юзаются одиночки.
(Добавление)
caballero пишет:
потому что половина кода, в частнсти наличие базового класса, не имеет смысла
с таким отношением вообще не имеет смысла большая часть того что делается, но это лирика.

хотелось бы более развернутое пояснение по:
caballero пишет:
а то что в програме нужно стопицот синглетонов говорит еще и о проблеммах с архитектурой.
 
 Top
Мелкий Супермодератор
Отправлено: 18 Октября, 2012 - 12:50:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




DlTA пишет:
минимизация кода

8 строк кода реализации синглтона и вдвое больше - синтаксического обвеса?

DlTA пишет:
обычно это не которые модели, частенько требующие некой инициализации, чтения конфигов, которые для всех обращений однотипны, и чтоб каждый раз не тратиться на их повторное чтение и разбор, а попутно не плодить в памяти пачку одинаковых (не однотипных) объектов и юзаются одиночки.

config::instance('желаемый конфиг'), не?


-----
PostgreSQL DBA
 
 Top
DlTA
Отправлено: 18 Октября, 2012 - 13:08:38
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Мелкий пишет:
8 строк кода реализации синглтона и вдвое больше - синтаксического обвеса?
обвеса так кстатит только 2 строчки. но ЗАБЕЙТЕ НА ЭТО

меня больше интересует почему одиночка плохо.

Мелкий пишет:
config::instance('желаемый конфиг'), не?
и как этим дальше пользоваться?
насколько я понял:
1) Я должен знать или переключаться и подглядывать как именно называется то, что мне вбивать в кавычки
2) -//-, что именно оно мне возвращает и как называется элемент который мне нужен. (да я достаточно линив)

то есть суть всего этого высказывания в том, чтоб по максимуму делегировать на IDE мои телодвижения.
 
 Top
Мелкий Супермодератор
Отправлено: 18 Октября, 2012 - 13:46:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Хм. Варианты писать на языке или с использованием языка я встречал, а вот проектирование ради ide?.. Мне это кажется настолько странным, что не могу ничего сказать.

DlTA пишет:
меня больше интересует почему одиночка плохо.

Потому что это - глобальные данные. Мне это кажется достаточно веской причиной внимательно относиться к сиглтонам и думать, действительно ли этот класс должен быть синглтоном (после обдумывания вопроса - а нужен ли здесь вообще ещё один класс).


-----
PostgreSQL DBA
 
 Top
EuGen Администратор
Отправлено: 18 Октября, 2012 - 13:51:54
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Singleton можно в некотором смысле считать антипаттерном, поскольку он неявно влияет глобально на программу. Это почти что то же самое, что глобальная переменная - а потому ухудшает переносимость кода и в ряде случаев его масштабируемость.
И, разумеется, повод для размышления - если требуется множество подобных объектов.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
eai
Отправлено: 18 Октября, 2012 - 13:54:45
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




попробуй использовать вместо self:: static::
 
 Top
DlTA
Отправлено: 18 Октября, 2012 - 14:07:36
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Мелкий пишет:
а вот проектирование ради ide
абстрагируемся, но ведь люди используют фреймверки?! и используя их, пишут уже с учетом появившихся при этом тонкостей, чем в данном случае хуже использование возможностей IDE? (автоподстановка с учетом коментов phpDoc).


EuGen пишет:
Это почти что то же самое, что глобальная переменная - а потому ухудшает переносимость кода и в ряде случаев его масштабируемость.
проблемы с глобальными переменными встречал, когда это был динамический объект, который мог менять свое состояние после использования в различных местах код, но в моем случае это скорей статический объект, принимающий состояние при инициализации, и выполняющий все методы на основе этого состояния, что может лучше может подойти в таком случае чем одиночка?
(Добавление)
eai пишет:
попробуй использовать вместо self:: static::
это к чему?
 
 Top
caballero
Отправлено: 18 Октября, 2012 - 15:45:39
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
абстрагируемся, но ведь люди используют фреймверки?! и используя их, пишут уже с учетом появившихся при этом тонкостей, чем в данном случае хуже использование возможностей IDE? (автоподстановка с учетом коментов phpDoc).

никто не пишет код ради IDE потому как выполнятся он будет не на IDE. Да и IDE разные тоже.
по той же причине существуют всякие makefile чтобы проекты можно было собирать независимот от окружения и наличия IDE.

Хочешь IDE - делай это не в ущерб кодированию, в данном случае нужно убрать бессмысленный базовый клас.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
eai
Отправлено: 18 Октября, 2012 - 23:05:51
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




DlTA пишет:

eai пишет:
попробуй использовать вместо self:: static::
это к чему?

Ёлки написал сюда ответ на другой вопрос в другом форуме Улыбка))) все надо больше отдыхать!
 
 Top
Страниц (4): « 1 2 3 [4]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB