![]() |
Наследование или условная компиляция?
Имеем достаточно большой проект, настройка контента находится в xml файлах, нужно написать простенький редактор контента.
В приложении есть уже классы (если говорить терминологией MVC - классы моделей, хотя MVC у нас нет...) реализующие модели/настройки объектов. В эти классах есть только "get" методы, для чтения параметров, но нет для сохранения - не предусмотрено логикой. Сейчас стою перед выбором, в проекте редактора: - дописать с помощью тегов условной компиляции методы сохранения - унаследоваться от этих классов, сделав предварительно все приватные переменные защищенными. Что посоветуете? |
2 вариант мне кажется более подходящим. Всё же инструкции условных компиляций плохо влияют на читабельность кода и ненужные методы вызывают загромождение.
Нужны классы для редактора - смотри классы для редактора. |
А как это:
Цитата:
|
как то так:
Код AS3:
Я не совсем в теме - мимо проходил.. |
|
Цитата:
Код AS3:
|
Попробовал реализовать наследованием, получилась попа :(
У моделек уже есть свое наследование, и либо придется дублировать очень много кода, либо еще попробовать разобраться с "неймспейсами" и сделать композицию... |
[В ответ на посты об условной компиляции]
Это понятно все с условной компиляцией - но при чем здесь "дописать с помощью тегов"? Дописать с помощью тэгов - это что-то типа [Bindable] - пишешь один тэг, а за тебя куча кода пишется (и то - немного не правильный пример, т.к. логика УЖЕ написана). Вобщем, я не так понял - подумал почему-то про генерирование кода с нуля при компиляции. P.S.: и ант не обязательно - это обычный mxmlc делает с помощью опций компилятора. |
Цитата:
И интерфейсами тут не выедешь! Точнее, выедешь, но плохо. |
Цитата:
- создаем интерфейс с перечислением get-методов - имплементим моделью этот интерфейс - в модели дописываем set-методы - где нам нужно - передаем интерфейс, где нет - саму модель Таким образом, с помощью интерфейса мы добиваемся разрешения доступа только на чтение. |
| Часовой пояс GMT +4, время: 08:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.