|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Feb 2001
Сообщений: 1,893
|
Цитата:
|
|
|||||
Цитата:
Последний раз редактировалось miramax; 19.03.2008 в 20:19. |
|
|||||
может закончим холивар? все равно ведь все останутся при своем!!! а за время пока вот тут идут дебаты, я открыл для себя паттерн "абстрактная фабрика", может еще по поводу него поспорим?
__________________
Кто может делать - делает, кто не может делать - учит, кто не может учить - управляет... |
|
|||||
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Цитата:
Цитата:
Раз есть какие-то веские причины, чтобы он был всегда финальным - пусть будет финальным (кстати, какие именно причины?). Но таки меняем пункт 1. Синглтон может от кого-то наследоваться, переопределяя методы (в том числе вызывая старые методы через super()). А со статическими методами возникнет ряд проблем... ----------------------------- Последняя добавочка. Я на самом деле использую и статические методы, и синглтоны. И то и другое - для глобального доступа. Потому что глобальный доступ - это такой "черный ход", который зачастую позволяет сильно сократить путь. Когда времени мало, а надо, чтобы какой-то очень мелкий объектик, обычно отвечающий за какую-то мелкую функцию, вдруг узнал что-то общее (например, громкость звука или url к сервлету) или даже вообще сделал что-то глобальное (например, какой-нить мелкий бонус вдруг взял да увеличил количество очков у игрока), и передавать это всё по цепочке не хочется - использую глобальный доступ. Но то, что быстро пишется, потом долго переделывается. Когда этот маленький объектик хочется использовать повторно в другом месте, где нет требуемого глобального объекта, приходиться вносить кучу исправлений. Последний раз редактировалось WindWalker; 19.03.2008 в 20:41. |
|
|||||
Цитата:
Цитата:
Последний раз редактировалось miramax; 19.03.2008 в 20:53. |
|
|||||
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Так статический метод только один: getInstance().
Пускай остаётся таким, какой он есть. Я говорю про методы/поля самого экземпляра. Прекрасно переопределяются. |
|
|||||
стервочка (я мужик)
|
Цитата:
либо по другому: зачем создавать синглтон в классе посреднике, если он и сам может выполнять этот функционал? вы приводите пример в которм используется синглтон, ради самого его существования. даже если вы вынесете синглтон в отдельный класс, то класс посредник уже нафиг не нужен, так как к нему будут иметь доступ все. наследовать его тем болие не надо. зачем? у нас же есть класс посредник мы может прям там написать. Цитата:
Цитата:
Цитата:
p.S: у нас кстати реализован ваш пример. конечно без сингтона. и уж тем болие без статиков. |
|
|||||
Цитата:
|
|
|||||
стервочка (я мужик)
|
Цитата:
|
|
||||||
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Цитата:
Всё, понял-отстал! Цитата:
Connection - синглтон, Request - посредник. Цитата:
Он может использовать скрытый синглтон. Он может использовать публичный синглтон. Он может использовать мультитон. Он может сам реализовывать весь функционал, а синглтон удаляется. Он может использовать статические методы - свои или другого класса. При этом все остальные ничего не замечают. Он реализует интерфейс, а как он это делает - дело десятое. То есть, вообще говоря, синглтон тут вовсе даже и не главный получается Просто - как одна из возможностей реализации. Цитата:
Потому что интерфейс (в ООПешном понимании) - это, вообще говоря тип, а не просто набор методов. Со всеми вытекающими... Цитата:
Но вот щас не могу вспомнить подробности, а исходников под рукой нет. Последний раз редактировалось WindWalker; 19.03.2008 в 22:06. |
Часовой пояс GMT +4, время: 18:32. |
|
« Предыдущая тема | Следующая тема » |
|
|