Непейвода Н.Н. Программирование. Раздел 3

Непейвода Н.Н. Программирование. Страница 390

Это требование удовлетворяется в ООП в другой форме: операции определяются совместно и одновременно с определением структуры новых значений.

Соотношения между операциями должны полностью определять все возможные эффекты использования значений и переменных констру­ируемого типа —поведение объектов конструируемого типа.

Не может быть и речи об удовлетворении этого требования в совре­менном ООП.

Определение поведения не должно опираться на информацию о пред­ставлении конструируемого типа.

Требование частично удовлетворяется в ООП, но даже в принципе не может быть выполнено полностью.

Сведения о реализации операций конструируемого типа не должны быть доступными на уровне использования, чтобы исключить воз­можность вложить в использующую программу информацию о том, как устроен конструируемый тип, —экранирование реализации.

В принципе декларируется в ООП, но в реальности нарушается на каж­дом шагу. Более того, при использовании шаблонов проектирования, семантически связывающих объекты разных типов (классов) опреде­ленными отношениями, регламентированное нарушение этого тре­бования даже предписывается. Пример с делегированием (см. § 12.1) — лишь одна из иллюстраций такого рода, когда явно указывается, что один объект должен содержать в своем представлении ссылку на другой объект.

Должна быть определена функция абстракции [54] А, отображающая объекты представления (rep) в абстрактные объекты А:

Безусловно, почти всегда функция абстракции является призраком.

Объектноориентированный подход с самого начала отказывается от данного требования. Упоминавшееся выше делегирование (см. § 12,1) — пример, показывающий, как нарушается независимость объ­ектного типа от представления (то, что это нарушение регламентиро­вано соответствующим шаблоном проектирования, ничего не меняет): объект «знает», что другой объект сможет выполнить требуемое дей­ствие, и это знание используется с помощью включения ссылки на другой объект в представлении. Как легко видеть, функциональная связь представлений и абстракций разрушается: в противном случае была бы допустима другая реализация, которая не поддерживала де­легирование.

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама