Показать сообщение отдельно
Старый 15.05.2018, 10:06
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Следовательно, в этом классе нужно перекрывать родительские методы - а это неправильно.
Неправильно? Это один из принципов ООП, так сказать, один из трёх китов)
Цитата:
А неправильно, т.к. это нарушение инкапсуляции..
Нет, это неправильная архитектура изначально.

Если изначально планируется, что в базовом классе грузится какая-то картинка, а объекты дочерних классов должны знать об этом, то и архитектуру родительского класса надо делать сразу с учетом этого.
Если нужно дождаться загрузки картинки, то можно обработчику сделать модификатор protected и в дочернем классе просто его перезаписать
Код AS3:
// в базовом классе
protected function onImageLoaded(e:Event):void {
      ... добавляется картинка
}
// в наследнике
override protected function onImageLoaded(e:Event):void {
    super.onImageLoaded(e);
    .. тут добавляешь свои чекбоксы
}
Я бы вообще добавление чекбоксов вынес из конструктора в отдельный метод, и просто вызывал его после загрузки картинки
Код AS3:
override protected function onImageLoaded(e:Event):void {
    super.onImageLoaded(e);
    addCheckboxesAndOtherCrap();
}
как-то так
__________________
Ко мне можно и нужно обращаться на ты)