Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Наследование или условная компиляция? (http://www.flasher.ru/forum/showthread.php?t=149447)

zuxul 25.01.2011 16:24

Наследование или условная компиляция?
 
Имеем достаточно большой проект, настройка контента находится в xml файлах, нужно написать простенький редактор контента.
В приложении есть уже классы (если говорить терминологией MVC - классы моделей, хотя MVC у нас нет...) реализующие модели/настройки объектов. В эти классах есть только "get" методы, для чтения параметров, но нет для сохранения - не предусмотрено логикой.
Сейчас стою перед выбором, в проекте редактора:
- дописать с помощью тегов условной компиляции методы сохранения
- унаследоваться от этих классов, сделав предварительно все приватные переменные защищенными.
Что посоветуете?

Котяра 25.01.2011 16:37

2 вариант мне кажется более подходящим. Всё же инструкции условных компиляций плохо влияют на читабельность кода и ненужные методы вызывают загромождение.
Нужны классы для редактора - смотри классы для редактора.

Волгоградец 25.01.2011 17:33

А как это:
Цитата:

- дописать с помощью тегов условной компиляции методы сохранения
Не знаю, интересно.

Котяра 25.01.2011 17:51

как то так:
Код AS3:

// для всех
public function get param():int{...}
// для редактора
CONFIG::editor
public function set param(value:int):void{...}

потом антом собирать, если в интсрукциях editor==true то строку включаем в сборку..
Я не совсем в теме - мимо проходил..

zuxul 25.01.2011 17:51

http://nanoflexer.blogspot.com/

i.o. 25.01.2011 17:58

Цитата:

Сообщение от Волгоградец (Сообщение 967805)
А как это

Вероятно как-то так:
Код AS3:

public function get someProperty():Object
{
    return _someProperty;
}
 
CONFIG::allowSetters
{
    public function set someProperty( value:Object ):void
    {
        if( value == _someProperty )
            return;
 
        _someProperty = value;
    }
}


zuxul 25.01.2011 18:03

Попробовал реализовать наследованием, получилась попа :(
У моделек уже есть свое наследование, и либо придется дублировать очень много кода, либо еще попробовать разобраться с "неймспейсами" и сделать композицию...

Волгоградец 25.01.2011 18:23

[В ответ на посты об условной компиляции]
Это понятно все с условной компиляцией - но при чем здесь "дописать с помощью тегов"? Дописать с помощью тэгов - это что-то типа [Bindable] - пишешь один тэг, а за тебя куча кода пишется (и то - немного не правильный пример, т.к. логика УЖЕ написана).
Вобщем, я не так понял - подумал почему-то про генерирование кода с нуля при компиляции.

P.S.: и ант не обязательно - это обычный mxmlc делает с помощью опций компилятора.

semenyakinVS 25.01.2011 21:52

Цитата:

Сообщение от zuxul (Сообщение 967824)
Попробовал реализовать наследованием, получилась попа :(
У моделек уже есть свое наследование

Ха! Вот оно и понадобилось - множественное наследование!

И интерфейсами тут не выедешь! Точнее, выедешь, но плохо.

gloomyBrain 25.01.2011 22:03

Цитата:

Ха! Вот оно и понадобилось - множественное наследование!
И интерфейсами тут не выедешь! Точнее, выедешь, но плохо.
Судя по всему, Вы так и не научились пользоваться интерфейсами =)

- создаем интерфейс с перечислением get-методов
- имплементим моделью этот интерфейс
- в модели дописываем set-методы
- где нам нужно - передаем интерфейс, где нет - саму модель

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


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

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