Показать сообщение отдельно
Старый 24.03.2012, 23:48
renych вне форума Посмотреть профиль Отправить личное сообщение для renych Найти все сообщения от renych
  № 5  
Ответить с цитированием
renych

Регистрация: Jul 2009
Сообщений: 22
Цитата:
Нет ничего элегантней умного и осведомленного директора, дающего указания исполнительной и следящей за собой секретарше, Вы не находите?
Безусловно один лишь факт наличия глобальных переменных наводит на мысль об ошибках в проектировании архитектуры. Запутанные связи, тянущиеся снизу вверх, порой через всё приложение, да и вообще доступ из любого модуля к произвольному участку памяти - моветон. Но с другой стороны тащить во все классы кучу параметров, которые, к тому же могут понадобиться и не всем вовсе, тоже не айс.
Мой мозг, испорченный ассемблером, ищет ответ, что есть правильно, с точки зрения ООП.

Добавлено через 13 минут
Чтоб не быть голословным, приведу простой пример.
Есть суперкласс, который создает экземпляр BitmapData и определяет его ширину и высоту.

Код AS3:
var width = 100;
var height = 50;
var bmp = new BitmapData( width, height );
И того имеем три переменные. Далее в классе создаётся куча других классов, которые так или иначе
работают с BitmapData. Рисуют в него, копируют и т.п. Им всем нужен доступ к width, height и bmp.
Более того, в каждом из этих классов могут быть созданы другие классы, которое тоже захотят работать
c этим битмапом.
Вопрос: правильно ли будет всем создаваемым классам передавать эти переменные в конструкторе (или других методах). Или можно объявить их как статические, но тогда как быть, если экземпляров суперкласса будет два?