которые должны быть реализованы заново
системы (). Рассмотрим отдельные аспекты этой поддержки.
Мобильность
Инкапсуляция позволяет хорошо скрыть машинно-зависимые части
системы, которые должны быть реализованы заново при переходе на
другую платформу. При этом гарантируется, что остальная часть
системы не потребует изменений.
При реализации новых машинно-зависимых частей многое может быть
взято из уже существующей системы благодаря механизму
наследования.
Расширяемость
Наследование позволяет сэкономить значительные средства при
расширении системы, поскольку многое не нужно создавать заново, а
некоторые новые компоненты можно получить, лишь слегка изменив
старые. Кроме повторного использования, увеличивается также
надежность, поскольку используются уже отлаженные компоненты.
Возможность конструирования абстрактных типов данных для создания
новых средств - обеспечивается самим понятием класса,
объединяющего похожие объекты с одинаковым набором операций.
Интероперабельность
Способность системы взаимодействовать с другими системами хорошо
поддерживается принципом посылки сообщения и соответствующими
понятиями полиморфизма и динамического связывания. В сообщении
объекту (возможно удаленному) передается имя действия, которое
должно быть им выполнено, и некоторые дополнительные аргументы
сообщения. Как это действие выполнять - знает и решает только сам
объект - получатель сообщения. От него только требуется выдать в
ответ результат. Совершенно очевидно, что разные объекты будут
по-разному реагировать на одинаковые сообщения (полиморфизм).
Кроме того, очень удобно выбирать способ реализации в последний
момент - при ответе на сообщение, в зависимости от текущего
состояния системы (динамическое связывание).
Для того, чтобы разные системы могли обмениваться сообщениями,
необходима либо единая трактовка всех типов данных, в том числе
абстрактных, либо индивидуальная процедура преобразования
сообщения для каждой пары неодинаковых взаимодействующих систем.
Простота понятия абстрактных типов данных в
Содержание Назад Вперед