Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.03.2008, 15:16
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 101  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Цитата:
Сообщение от WindWalker
Что применять в конкретном случае, зависит от конкретной ситуации.
золотые слова. вы не описали и половины требований на своём примере, а то что в качестве аргумента привели, я же раза 4 опровергал выше. Вы приведите конкретный пример где синглтон будет удобнее чем статика, или обычный экзепляр. пока что вы воздухом в водичку пукаете, как маленький.

Старый 23.03.2008, 16:13
WindWalker вне форума Посмотреть профиль Отправить личное сообщение для WindWalker Найти все сообщения от WindWalker
  № 102  
Ответить с цитированием
WindWalker
[+1 18.03.08]

Регистрация: Nov 2006
Сообщений: 223
Пример 1.

Аркадная игра. Бегает мужичок, стреляет в монстряков, собирает бонусы.
У мужичка есть разные параметры: очки, здоровье, патроны, и всякие там ключи для открывания дверей.
Где будем это всё хранить?

Пример 2.
Есть 10 кнопочек, которые при нажатии должны издавать одинаковый звук. Разумеется, загружать 10 раз один и тот же звук глупо - достаточно один раз и его всегда использовать.
Конечно, можно его впихнуть в какую-нибудь статическую переменную.

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

Пример 3.
Допустим, делаем какой-то графический редактор, позволяющий манипулировать различными геометрическими фигурами.
Фигуры могут быть сгруппированы.

Но при этом необходимо сделать так (требования конкретно данного приложения), чтобы фигуры всегда принадлежали некоторой группе.
Т.е. когда создаём новую фигуру, она должен быть помещена в некоторую DefaultGroup.
Разумеется, что группа по умолчанию должна быть одна и общая для всех. В чём-то её фунциональность повторяет все остальные группы, но есть свои особенности (т.е. наследуется от некоего класса, но переопределяет методы).
При этом фигура должна единообразно хранить ссылку на группу, которой принадлежит, не зависимо от того, дефалтная она или обычная (полиморфизм).

Старый 23.03.2008, 16:37
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 103  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Цитата:
Сообщение от WindWalker
Пример 1.
Аркадная игра. Бегает мужичок, стреляет в монстряков, собирает бонусы.
У мужичка есть разные параметры: очки, здоровье, патроны, и всякие там ключи для открывания дверей.
Где будем это всё хранить?
как где? в модели этого человечка. всё в лучших традициях MVC. причём человечек и монстрики будут унаследованы от одного класса. ваще никакого сингтона и близко и не должно быть
Цитата:
Сообщение от WindWalker
Пример 2.
Есть 10 кнопочек, которые при нажатии должны издавать одинаковый звук. Разумеется, загружать 10 раз один и тот же звук глупо - достаточно один раз и его всегда использовать.
Конечно, можно его впихнуть в какую-нибудь статическую переменную.

Но у 11-й кнопки звук должен быть уникальным, а не таким, как у других.
Как решим это через статику?
интересно как это решится при помощи синглтона, если кнопочки должны издавать разные звуки?
Цитата:
Сообщение от WindWalker
Пример 3.
Допустим, делаем какой-то графический редактор, позволяющий манипулировать различными геометрическими фигурами.
Фигуры могут быть сгруппированы.

Но при этом необходимо сделать так (требования конкретно данного приложения), чтобы фигуры всегда принадлежали некоторой группе.
Т.е. когда создаём новую фигуру, она должен быть помещена в некоторую DefaultGroup.
Разумеется, что группа по умолчанию должна быть одна и общая для всех. В чём-то её фунциональность повторяет все остальные группы, но есть свои особенности (т.е. наследуется от некоего класса, но переопределяет методы).
При этом фигура должна единообразно хранить ссылку на группу, которой принадлежит, не зависимо от того, дефалтная она или обычная (полиморфизм).
а тут где сингтон? то что у редактора будет написана какая группа дефолтная не сделает её синглтоном. вводим редакторирование одновременно 2х рисунков, и копирование между ними. весь ваш сингтон в топку.

Старый 23.03.2008, 16:57
WindWalker вне форума Посмотреть профиль Отправить личное сообщение для WindWalker Найти все сообщения от WindWalker
  № 104  
Ответить с цитированием
WindWalker
[+1 18.03.08]

Регистрация: Nov 2006
Сообщений: 223
Цитата:
Сообщение от BlooDHounD
как где? в модели этого человечка. всё в лучших традициях MVC. причём человечек и монстрики будут унаследованы от одного класса. ваще никакого сингтона и близко и не должно быть
Ок. Многие объекты (аптечки, коробки с патронами, двери, пульки, монстры) могут или изменять параметры человечка (добавить/убавить) или напротив их поведение будет зависеть от параметров человечка (откроется/не откроется, подберётся/останется).

Каким образом они будут получать к ним доступ?

Цитата:
интересно как это решится при помощи синглтона, если кнопочки должны издавать разные звуки?
Элементарно. Кнопочке добавляем переменную экземпляра: sound.
По умолчанию пихаем туда стандартный звук, который реализован как синглтон. При необходимости пихаем туда любой другой звук.

Цитата:
а тут где сингтон? то что у редактора будет написана какая группа дефолтная не сделает её синглтоном.
Я надеялся, что приведёте альтернативное решение.

Цитата:
вводим редакторирование одновременно 2х рисунков, и копирование между ними. весь ваш сингтон в топку.
Совершенно верно! Именно поэтому синглтон тут более удобен, так как в случае необходимости его всегда можно послать в топку без особых последствий. О чём я и твержу уже давно.
Например, делаем так, чтобы getInstance() возвращал не единствуенную и неповторимую дефалтную группу, а дефалтную группу текущего документа. Все изменения - внутри одного класса.

А вот если бы использовали статику - сели бы в колошу.

Старый 23.03.2008, 18:39
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 105  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Цитата:
Сообщение от WindWalker
Ок. Многие объекты (аптечки, коробки с патронами, двери, пульки, монстры) могут или изменять параметры человечка (добавить/убавить) или напротив их поведение будет зависеть от параметров человечка (откроется/не откроется, подберётся/останется).

Каким образом они будут получать к ним доступ?
они и не будут. этим будет заниматься конроллер, у которого к ним есть доступ. как и положено.
Цитата:
Сообщение от WindWalker
Элементарно. Кнопочке добавляем переменную экземпляра: sound.
По умолчанию пихаем туда стандартный звук, который реализован как синглтон. При необходимости пихаем туда любой другой звук.
а зачем реализовывать через синглтон дефолтное значение переменной? чё-то я не въезжаю.
Цитата:
Сообщение от WindWalker
Совершенно верно! Именно поэтому синглтон тут более удобен, так как в случае необходимости его всегда можно послать в топку без особых последствий. О чём я и твержу уже давно.
Например, делаем так, чтобы getInstance() возвращал не единствуенную и неповторимую дефалтную группу, а дефалтную группу текущего документа. Все изменения - внутри одного класса.
интересно как ваш статический метод узнает с каким документом мы работам ... и ещё интересно, что он будет делать если будем работать одновременно с друмя. к тому же я не понимаю зачем использовать синглтон, заведомо зная, что он тут тупо лишний.
Цитата:
Сообщение от WindWalker
А вот если бы использовали статику - сели бы в колошу.
я нигде не написал, что в данных примерах надо использовать статику. наоборот статика тут нафиг не нужна, потому что ни в одном примере вообще не требуется глобальный доступ. я бы даже сказал, что он просто затруднит всю дальнейшую разработку:
* в первом примере будет невозможно реализовать взаимодействие друг с другом, а только с человечком.
* в примере со звуком, я пока не понимаю, как там вообще увязывается синглтон.
* в 3м мы не сможем нормально работать с группами, так как некоторые из них можно получить не пойми как, так как нельзя железно знать, что "бывший синглтон" вернёт именно ту группу, которую мы ожидаем. мы же его больше не контролируем.


Последний раз редактировалось BlooDHounD; 23.03.2008 в 19:17.
Старый 23.03.2008, 20:22
WindWalker вне форума Посмотреть профиль Отправить личное сообщение для WindWalker Найти все сообщения от WindWalker
  № 106  
Ответить с цитированием
WindWalker
[+1 18.03.08]

Регистрация: Nov 2006
Сообщений: 223
Цитата:
Сообщение от BlooDHounD
а зачем реализовывать через синглтон дефолтное значение переменной? чё-то я не въезжаю.
Потому что этот же звук может использоваться для других объектов.
Например, для чекбоксов.

Старый 23.03.2008, 21:01
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 107  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
всё равно не понимаю ... ну используется он в чекбоксах и что теперь? делаем екбокс наследником бутона, если на то пошло ...

Старый 23.03.2008, 21:13
WindWalker вне форума Посмотреть профиль Отправить личное сообщение для WindWalker Найти все сообщения от WindWalker
  № 108  
Ответить с цитированием
WindWalker
[+1 18.03.08]

Регистрация: Nov 2006
Сообщений: 223
Вот так и знал, блин, что так скажешь

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

Цитата:
они и не будут. этим будет заниматься конроллер, у которого к ним есть доступ. как и положено.
То есть пихаем логику в контроллер? Разве так и положено?

Старый 23.03.2008, 21:54
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 109  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Цитата:
Сообщение от WindWalker
Вот так и знал, блин, что так скажешь

А вот нельзя нам наследовать чекбокс от баттона, поскольку это не стандартный баттон, а какой-то специфический, уже имеющий какие-то дополнительные фишки и для чекбокса не годиться.
а какая разница? я всё равно не врубаюсь. наследуй, не наследуй ... нельзя, так передай экземпляр. у тебя 100 звуков, а зачем делать один из них синглтоном, я не понимаю.
Цитата:
Сообщение от WindWalker
То есть пихаем логику в контроллер? Разве так и положено?
эээ, что-что?

Старый 23.03.2008, 22:19
WindWalker вне форума Посмотреть профиль Отправить личное сообщение для WindWalker Найти все сообщения от WindWalker
  № 110  
Ответить с цитированием
WindWalker
[+1 18.03.08]

Регистрация: Nov 2006
Сообщений: 223
Ну ты говоришь, что взаимодействие объектов в аркаде будет обрабатывать контроллер.

Вот, скажем, есть у нас в игре про мужичка два вида аптечек: одна увеличивает здоровье на 25 хп, но не более, чем до 100, вторая учеличивает на 100 хп, но не более, чем до 200. Если уже максимум хп, то аптечка не берётся.

Мужичок наступает на аптечку (кстати, кто определяет столкновение? по идее это тоже логика). Как происходит дальнейшая обработка?

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:47.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:47.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.