Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   загрузчик в MVC || S (http://www.flasher.ru/forum/showthread.php?t=202686)

Babylon 08.08.2013 20:34

Классы предопределены заранее. С динамическими классами работать в AS3 непросто. Насчет уроков. Наиболее нетривиальные материалы у Олега http://blog.actualwave.com/, который всем знаком по руфлеш.
Словари действительно существуют. Это словари по всем нодам, моделям, видам и контроллерам. Назначение их очевидно - доступ по ключу к нужным инстансам и xml нодам. По поводу передачи. Ссылка на инстанс передается через контроллер. Что конкретно передается в методы классов модели или вида определяется в соответствующих хэндлерах контроллера. Тут уже объясняли назначение интерфейсов. Но зацикливаться на них не надо и в начале проектирования даже вредно.

Akopalipsis 08.08.2013 21:40

Цитата:

Словари действительно существуют. Это словари по всем нодам, моделям, видам и контроллерам.
Получается, "если ОНИ существуют", то у каждого элемента патерна свой собственный словарь. Это понял.
Мне вот что не понятно из этой цитаты - "это словари по всем НОДАМ"... Сказать честно, до вчерашнего дня я не знал что это такое. Полез в гугл и прочел, что в друпал есть такой класс который содержит все настройки. Вот я и интерпретировал Ваши слова НОДА как обьект xml содержащий настройки, но поле того как прочел, что и ноды занесены в реестр с словарях.. Что это? И извините, если считаете, что я не зная таких вещей интересуюсь уже почти конечными целями. Может показаться, что я пытаюсь прыгнуть выше головы...Возможно это так и есть! Но я быстро учусь и уверен что справился бы и с этим если бы, как вы уже заметили, были бы годные работы. А вообще, если спрашиваю о мелочах, то скорее всего я уточняю, ведь даже банальный менеджер классов можно создать по разному - словарь, обжекты, вектор, словарь + обжект, массив.. И лично я вообще не вижу разницы между этими подходами, за исключением массива..ну и вектора) так что же такое нода?

Babylon 08.08.2013 21:59

Вы можете определить ссылку на инстанс по атрибуту id xml ноды и наоборот по ссылке на инстанс xml ноду. Вы поймете почему удобен XML, когда начнете проектировать сервисную часть и работу с сервером.

belv 08.08.2013 22:20

Babylon Вы так часто говорите, что использование интерфейсов - это плохая практика.Что я решил спросить, чем же плоха реализация через интерфейсы?Приведу очень простой пример, на основании его можем и обсудить плюсы и минусы интерфейсов.
Код AS3:

package  
{
        public interface IFruit
        {
                function getCallories():String;
        }
}

Код AS3:

package  
{
        public class Apple implements IFruit
        {
                private var callories:uint;
                public function Apple()
                {
                        callories = 100;
                }
                public function getCallories():String
                {
                        return "Яблоко иеет " + callories + " каллорий.";
                }
        }
}

Код AS3:

package  
{
        public class Pear implements IFruit
        {
                private var callories:uint;
                public function Pear()
                {
                        callories = 150;
                }
                public function getCallories():String
                {
                        return "Груша иеет " + callories + " каллорий.";
                }
        }
}

Код AS3:

package  
{
        public class Plum implements IFruit
        {
                private var callories:uint;
                public function Plum()
                {
                        callories = 75;
                }
                public function getCallories():String
                {
                        return "Слива иеет " + callories + " каллорий.";
                }
        }
}

Код AS3:

package  
{
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        public class MyTextField extends TextField
        {
                private var fruit:IFruit;
                public function MyTextField(fruit:IFruit)
                {
                        this.fruit = fruit;
                        this.border = false;
                        this.background = false;
                        this.autoSize = TextFieldAutoSize.LEFT;
                        this.text = this.fruit.getCallories();
                }
        }
}

Код AS3:

package  
{
        import flash.display.Sprite
        public class Main extends Sprite
        {
                private var apple:IFruit;
                private var pear:IFruit;
                private var plum:IFruit;
                private var text1:MyTextField;
                private var text2:MyTextField;
                private var text3:MyTextField;
                public function Main()
                {
                        apple = new Apple();
                        pear = new Pear();
                        plum = new Plum();
                        text1 = new MyTextField(apple);
                        text2 = new MyTextField(pear);
                        text2.y = 50;
                        text3 = new MyTextField(plum);
                        text3.y = 100;
                        addChild(text1);
                        addChild(text2);
                        addChild(text3);
                }
        }
}

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

Babylon 08.08.2013 22:49

Придется себя перечитать и вспомнить в каком контексте я так выразился:)

belv 08.08.2013 22:59

Но зацикливаться на них не надо и в начале проектирования даже вредно.
Интерфейсы по большому счету не нужны если вы один проектируйте приложение.
Я полностью разделяю точку зрения автора http://javascript.ru/optimize/antimvc
и таких высказываний я помню еще, как минимум 3.

Babylon 08.08.2013 23:14

Спасибо, что цитируете меня наизусть.

belv 08.08.2013 23:16

Я понимаю ваш сарказм, но хочется услышать аргументированный ответ на вопрос,чем же плоха реализация через интерфейсы?. Что их нужно сторонится как ЧЁРТА.

Babylon 08.08.2013 23:24

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

Котейка 08.08.2013 23:35

Цитата:

У меня возникло какое то двоякое чувство по поводу - чем является загрузчик в шаблоне MVC или MVCS.
Довольно странный вопрос. А чем является int или Object в MVC? :) Правильно - ничем) Загрузчик вообще к MVC никакого отношения не имеет.


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

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