![]() |
разбивка основного класса на модули
Как в Flex3 + AS3 вынести часть кода в отдельный модуль, а то все в одном слишком громоздко получается. Гуглю уже неделю, ничего по теме не нахожу.
Но не так, чтоб тольк остатические методы в отдельный класс, у меня таких почти нет, а чтоб именно методы основного класса с полной видимостью private variables and methods. |
Эммм... Куски кода класса вынести в другой файл, но что-бы это в итоге был один класс, а не разные?
|
хрень какая-то на самом деле.
Если класс получается слишком громоздким то нужно подумать и поделить его на логические составляющие. Из каждой такой составляющей следует сделать отдельный класс, и наладить между ними взаимодействие. Я такую деятельность провожу периодически в своих проектах. Обычно такого не случается, но и на старуху бывает проруха:) |
Что-то странное вы спрашиваете, раз у вас проект стал аж таким громоздким, то его наверняка можно поделить на класы.
|
Ну как-то так... можно и вынести в другой класс, но как-то так, чтоб видимость сохранить и чтоб не пришлось потом ко всем переменным дописывать имя класса вначале... Ну вот а ты сам как делаешь, чтоб не было много кода в основном классе?
Хорошо... Будут ли видны методы основного класса из методов дополнительнго? Если в основном классе есть небольшой метод showMessage, который совсем маленький и выносить его в отдельный класс не смысла, но я этот метод вызываю много где, в том числе в тех функциях, которые я хочу вынести в отдельный класс. Можно ли сделать так, чтоб showMessage вызывался как и раньше без приставок (чтоб код не править в миллионе мест) так буд-то он является методом нашего нового класса? |
Если вам нужно что-бы переменная была публичной, то и объявляйте её публичной. Остальные модификаторы доступа нужны что-бы инкапсулировать реализацию в рамках пакета, цепочки наследования или одного класса.
Что-касается приставок и миллионов правок, то FD есть "фича" что-бы заменять повторяющиеся участки кода на новый код. Хотя всё это антипаттерн. |
Я так догадываюсь, вы ищете что-то типа partial из C# - нет, такого нет. Но и писать такие большие классы тоже плохо, и не только потому, что с ними не удобно работать. Плохо еще и потому, что скорее всего такой класс выполняет много функций, которые лучше было бы разделить, с точки зрения планирования проекта в целом.
Самое худшее, что вы можете сделать - есть директива компилятора include она предназначена для того, чтобы во время компиляции собирать код из нескольких файлов. Проблема с ней в том, что ни одна среда разработки не найдет заincludеные исходники - работать так очень неудобно. Лучше, конечно, разбить класс на логические части. Очень часто решением проблемы становятся "состояния" - классы описывающие публичные, и не только методы класса, в зависимости от того, в каком состоянии находится объект - это позволяет сделать код более читаемым. Например, если у вас было: Код AS3:
Код AS3:
|
Спасибо, wvxvw
Вот тот ответ, который я искал... |
Наследование? И делить код на функциональные части по их смыслу (взаимодействие с сервером, отрисовка, и т.д.) не подходит?
|
| Часовой пояс GMT +4, время: 12:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.