Меня постоянно интересует это, чтобы попытаться улучшить производительность и размер моих SWF-файлов Flex. Как классы, статические методы и методы экземпляров влияют на производительность и размер окончательно скомпилированного «исполняемого файла»? Подумав, как можно применить что-то вроде HAML и Sass для Flex ...
Скажем, я создаю очень большой интерфейс администратора с множеством компонентов и представлений, и к каждому из этих компонентов применяется объект Skin (на примере Spark Skinning Architecture для Flex ).
Теперь я хочу добавить 10 различных эффектов к каждому скину (скажем, на экране 100 компонентов, то есть 1000 созданных экземпляров эффектов). Что лучше:
- Пусть каждый эффект является классом (BlurEffect, GlowEffect ...) и добавьте эти 10 к скину.
- Пусть все эффекты будут методами экземпляра в одном большом классе, скажем "MultiEffect.as", и добавьте этот класс к скину, на который ссылаются как
multiEffect.glow()
.
- У всех эффектов должны быть статические методы в одном одноэлементном классе "EffectManager.as" и просто ссылаться на эффекты в скине через
EffectManager.glow(this)
.
So
- Классы с несколькими эффектами на кожу, против
- Один класс Эффект на скин, с методами экземпляра, против
- Один класс эффектов глобально, со статическими методами
Как эти вещи влияют на память и размер исполняемого файла (размер swf в этом примере)? Я знаю, что классы являются лучшими методиками ООП, и что статические методы медленнее, чем методы экземпляров, и что следует избегать синглетонов, поэтому речь идет не о производительности обязательно. Подробнее о памяти (которая в некоторых случаях будет меньше) и о размере файла.