|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Как лучше сделать сохранение настроек на сеанс.
Например есть ряд однотипных объектов.
Открыли один. Изменили в нем какое-то свойство, потом открыли другой, но он опять со свойством по-умолчанию, а охота чтоб с измененными. решить можно по-разному: - всунуть в эти объекты какое-то статик свойство, и потом его брать. - придется делать в каждом классе свое свойство с настройками. - всунуть в потенциального родителя это свойство (не статик), и в конструктор объекта параметр, и таким образом из родителя передавать это значение в конструктор объекта. - раздует код родительского класса (а что если родители отличаются? например класс "Заметка", просто липучка на чем-попало. Родителем может быть что угодно) - создать какой-то класс отдельный. Сделать в нем кучу статических полей, и всё пихать туда. А потом уже все объекты будут брать настройки из него. Ну такой себе глобальный здаровый класс, в котором тупо все настройки приложения впихнуть. А его уже потом подключать во все остальные классы. - не знаю насколько валидно, но как вариант - SharedObject. |
|
|||||
Ну вообще да, может подойти для определенного ряда задач. Но тут суть чуть в другом, имеются в виду именно настройки.
Например есть Софтина. У нее что-то там настраивается визуально. Например класс "Лист" У него есть тайтл у него есть канвас У него есть шейп, который разграфлен в линеечку, как школьная тетрадка. Листы эти создаются регулярно и за один сеанс много Ну и я к примеру как пользователь растянул его на полэкрана ибо мне так удобнее. А линеечки там не просто так, а каждый промежуток между линиями отвечает за 15 минут времени.. Что-то типа ежедневника с листами. Так вот я растянул, и мне надо ставить какие-то пометки, там, рисовать отрезки временные (мышкой рисуются). И вот я как пользователь вижу одну линию, которая 15 минут, а я как разраб вижу вначале 10 пиксел между линиями, а потом уже 30. Соответственно нужна настройка которая мне скажет о том что между двумя линиями уже не 10 а 30 пиксел. Кроме того, как пользователь я хочу один раз (за сеанс) настроив этот лист, чтобы все остальные были такие же. Клонировать это слегка не то получается (хотя конечно смотря как клонировать). Но мне кажется как-то не элегантно что-ли для данного случая. К тому же у листа может быть не только эта настройка. И к тому же такие настройки могут быть практически в каждом классе. И опять же, как быть если у меня открыто куча листов, а я изменения внес в одном. Если клонировать то мне придется пересоздавать все листы чтоб изменения вступили в силу. Потому задумался о каком-то глобальном хранении. Последний раз редактировалось Dukobpa3; 02.12.2010 в 09:09. Причина: Как-то или я неправильно делаю, или что, но периодически отправляю по два сообщения за раз. |
|
|||||
т.е. касательно данной ситуации
- Мейн - контроллер - Лист - модель - Канвас - вид. Контроллер у нас один. Он создает кучу листов-моделей. Листы-модели сообщают о манипуляциях пользователя в контроллер Контроллер перерисовывает листы-канвасы (если поменялась какая-то глобальная настройка - то она размножается на все листы, а если что-то локальное для одного листа-модели - то только один) Как-то так? |
|
|||||
Мейн - создает контроллер, модель, вид.
Модель - модель. Контроллер - контроллер. Лист - вид. Добавлено через 1 минуту Лист сообщает контроллеру, что он изменился. Контроллер меняет модель. Модель сообщает, что она изменилась. Лист (все листы) реагирует на изменения модели. |
|
|||||
Ок, тогда касательно именно этой задачи:
Как было сказано выше - это таки да, ежедневник. Итого: Контроллер - контроллер Модель - активный день (в нем так же хранятся все настройки вида) Вид - лист (не хранит ничего кроме канваса как такового) Поидее понял. |
|
|||||
Цитата:
Я для себя представлял следующим образом: Есть ОБЪЕКТ (абстрактно) Этот объект как-то выглядит - вид Этот объект чего-то весит - модель Этим объектом кто-то может управлять. Так вот я думал что вид и модель - тождественны, это как одно целое, что и являет собой ОБЪЕКТ вцелом, а контроллер - это уже как менеджер этих объектов. И у контроллера этих объектов может быть много. |
|
|||||
Цитата:
Есть данные, самое главное что у нас есть. То что важно пользователю, единственное, что сохраняется (настройки тоже данные). Данные это – ОБЪЕКТ. Данные надо отобразить, должен же пользователь видеть свои данные. Есть некий класс, который умеет отображать данные, это – часть вида или весь вид, не важно. Он имеет ссылку на модель (это не обязательно, но для лучшего понимания примем это за аксиому) и слушает ее изменения. В зависимости от состояния ОБЪЕКТА, этот класс меняет свое состояние так, что бы адекватно отобразить данные. |
Часовой пояс GMT +4, время: 11:01. |
|
« Предыдущая тема | Следующая тема » |
Теги |
AS3 , ООП |
|
|