Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мини конспект по ООП.doc
Скачиваний:
34
Добавлен:
25.03.2015
Размер:
241.66 Кб
Скачать

21. Преимущества наследования?

Преимущества наследования:

1) Повторное использование программ

При наследовании поведения от другого класса программный код не переписывается. Это имеет важное значение. Многие программисты тратят много времени на переработку уже написанного кода. При использовании ООТ, написанный ранее код может повторно использоваться.

Другое преимущество повторно используемого кода – в его надежности (чем в большем числе ситуаций используется код, тем больше возможностей обнаружения ошибок) и низкой стоимости, так как она делится на всех пользователей кода.

2) Использование общего кода

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

3) Согласование интерфейса

Если два класса наследуют одному и тому же предку, наследуемое поведение будет одинаковым во всех случаях. То есть объекты, схожие по интерфейсу, должны быть фактически сходными. Иначе пользователь получит почти одинаковые объекты с совершенно разным поведением.

4) Программные компоненты

Наследование предоставляет программистам возможность создавать повторно (многократно) используемые программные компоненты. Цель: обеспечить развитие новых приложений с минимальным написанием нового кода. Например, библиотеки.

5) Быстрое макетирование

Когда программное обеспечение конструируется в основном из повторно используемых компонент, большая часть времени, требуемого на разработку, может быть посвящена пониманию новых необычных частей системы. Таким образом, программные комплексы могут создаваться быстрее и проще, приводя к стилю программирования, известному как быстрое макетированиеилиисследовательское программирование. Создается система-прототип (макет), пользователи экспериментируют с ней, потом на основе этих опытов создается вторая система, с ней проводятся эксперименты и т.д.

Такое программирование особенно выгодно, когда цели и требования к системе в начале разработки представлены весьма расплывчато.

6) Маскировка информации

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

7) Полиморфизм и структура

Программное обеспечение традиционно создавалось снизу вверх. То есть сначала писались программы нижнего уровня, на их основе строились более абстрактные элементы, затем– еще более абстрактные. Такой процесс похож на строительство дома.

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

Компоненты нижнего уровня могут быть перенесены в новую систему, и часто есть смысл в их самостоятельном существовании.

Компоненты верхнего уровня обычно имеют смысл (из-за их функциональности или зависимости от данных), только когда они построены на определенных элементах нижнего уровня.

Полиморфизм позволяет программисту создавать многократно используемые компоненты высокого уровня, которые можно перекраивать под различные приложения за счет изменения нижнего уровня.