![]() |
Цитата:
|
Пример 1.
Аркадная игра. Бегает мужичок, стреляет в монстряков, собирает бонусы. У мужичка есть разные параметры: очки, здоровье, патроны, и всякие там ключи для открывания дверей. Где будем это всё хранить? Пример 2. Есть 10 кнопочек, которые при нажатии должны издавать одинаковый звук. Разумеется, загружать 10 раз один и тот же звук глупо - достаточно один раз и его всегда использовать. Конечно, можно его впихнуть в какую-нибудь статическую переменную. Но у 11-й кнопки звук должен быть уникальным, а не таким, как у других. Как решим это через статику? Пример 3. Допустим, делаем какой-то графический редактор, позволяющий манипулировать различными геометрическими фигурами. Фигуры могут быть сгруппированы. Но при этом необходимо сделать так (требования конкретно данного приложения), чтобы фигуры всегда принадлежали некоторой группе. Т.е. когда создаём новую фигуру, она должен быть помещена в некоторую DefaultGroup. Разумеется, что группа по умолчанию должна быть одна и общая для всех. В чём-то её фунциональность повторяет все остальные группы, но есть свои особенности (т.е. наследуется от некоего класса, но переопределяет методы). При этом фигура должна единообразно хранить ссылку на группу, которой принадлежит, не зависимо от того, дефалтная она или обычная (полиморфизм). |
Цитата:
Цитата:
Цитата:
|
Цитата:
Каким образом они будут получать к ним доступ? Цитата:
По умолчанию пихаем туда стандартный звук, который реализован как синглтон. При необходимости пихаем туда любой другой звук. Цитата:
Цитата:
Например, делаем так, чтобы getInstance() возвращал не единствуенную и неповторимую дефалтную группу, а дефалтную группу текущего документа. Все изменения - внутри одного класса. А вот если бы использовали статику - сели бы в колошу. |
Цитата:
Цитата:
Цитата:
Цитата:
* в первом примере будет невозможно реализовать взаимодействие друг с другом, а только с человечком. * в примере со звуком, я пока не понимаю, как там вообще увязывается синглтон. * в 3м мы не сможем нормально работать с группами, так как некоторые из них можно получить не пойми как, так как нельзя железно знать, что "бывший синглтон" вернёт именно ту группу, которую мы ожидаем. мы же его больше не контролируем. |
Цитата:
Например, для чекбоксов. |
всё равно не понимаю ... ну используется он в чекбоксах и что теперь? делаем екбокс наследником бутона, если на то пошло ...
|
Вот так и знал, блин, что так скажешь :)
А вот нельзя нам наследовать чекбокс от баттона, поскольку это не стандартный баттон, а какой-то специфический, уже имеющий какие-то дополнительные фишки и для чекбокса не годиться. Цитата:
|
Цитата:
Цитата:
|
Ну ты говоришь, что взаимодействие объектов в аркаде будет обрабатывать контроллер.
Вот, скажем, есть у нас в игре про мужичка два вида аптечек: одна увеличивает здоровье на 25 хп, но не более, чем до 100, вторая учеличивает на 100 хп, но не более, чем до 200. Если уже максимум хп, то аптечка не берётся. Мужичок наступает на аптечку (кстати, кто определяет столкновение? по идее это тоже логика). Как происходит дальнейшая обработка? |
| Часовой пояс GMT +4, время: 01:44. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.