Logo

28 ноября 2013 г.

Фрактальная модель: важность наследования

Поиск определения объектно-ориентированной ОС велся путем последовательного применения понятий ООП к классическим ОС и исключением понятий из рассмотрения при обнаружении применимости.

Инкапсуляция

Инкапсуляция — это сокрытие данных и/или реализации, вне ООП известно как принцип «черного ящика». В классических ОС инкапсуляция прямо или косвенно используется в понятиях файла и программы:
  • ОС контролирует только имя и атрибуты файла, но его содержимое как прикладную сущность.
  • Подход к программе как к «черному ящику» вынуждает вводить защиту (кольца защиты, страничную защиту), без которых ОС считается потенциально уязвимой.
Существование вне ООП и присутствие в классических ОС исключает инкапсуляцию из рассмотрения.

Полиморфизм

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

Каждая программа является реализацией абстрактного интерфейса, описываемым на языке Кантор как:
public class Program of
  public out Integer Execute(String Args[Word]);
end;
В тех ОС, где получение входных параметров требует вызова функции API, интерфейс еще проще:
public class Program of
  public out Integer Execute;
end;
В классических ОС интерфейс всего один, поэтому полиморфизм считается вырожденным. Реализация интерфейса программами — первый случай полиморфизма.

Если формат исполняемого файла позволяет хранить код для нескольких сред или поколений ОС, возможен второй случай — полиморфное поведение. Примером служит утилита bootpart, исполняемый файл которой работает как в DOS, так и в Windows, в каждом случае используя API именно той ОС, из-под которой она была запущена.

Наверняка есть и другие случаи полиморфизма вне ООП, ускользнувшие от внимания автора. Для анализа важно лишь существование такого полиморфизма, что исключает полиморфизм из дальнейшего рассмотрения.

Наследование

Механизм расширения сущности с порождением новой сущности называют наследованием, а сами сущности — предком и потомком. Наследование приводит к появлению иерархии сущностей, состоящих в отношении наследования. В зависимости от того, разрешено ли множественное наследование, иерархия может образовывать дерево или граф.

Примеров наследования вне объектно-ориентированного программирования или в классических ОС не найдено. Существуют противоположные примеры — системы и среды с реализацией подмножества ООП, где наследование ограничено интерфейсами и/или заменено другим суррогатом. Эти системы мы условились называть «ОС с объектами», также их называют объектными — в противоположность полноценным объектно-ориентированным системам, реализующим наследование.

Отсутствие наследования вне ООП и (косвенно) сложность реализации на системном уровне дали основание считать его ключевой особенностью объектно-ориентированной ОС. Как уже говорилось, в проекте принято, что объектно-ориентированная ОС порождает программы наследованием.

Ссылки

Комментариев нет :

Отправить комментарий

Выбрав в выпадающем списке пункт «Имя/URL», можно оставить комментарий от своего имени без предварительной регистрации.