Инкапсуляция позволяет изменить реализацию объекта без
модификации основной части программы, если его интерфейс остался
прежним. Простота модификации является очень важным критерием
качества программы: ведь любой программный
продукт в течение своего
жизненного цикла претерпевает множество изменений и дополнений.
Кроме того, инкапсуляция позволяет использовать объект в «другом
окружении» и быть уверенным, что он не испортит не принадлежащие ему
области памяти.
Каждый год в мире пишется огромное количество новых программ, и
важнейшее
значение
приобретает
возможность
многократного
использования
кода.
Преимущество
объектно-ориентированного
программирования состоит в том, что для объекта можно определить
наследников, корректирующих или дополняющих его поведение. При этом
нет необходимости не только повторять исходный код родительского
объекта, но даже иметь к нему доступ.
Наследование является мощнейшим инструментом ООП и
применяется для следующих взаимосвязанных целей:
– исключения из программы повторяющихся фрагментов кода;
– упрощения модификации программы;
– упрощения создания новых программ на основе существующих.
Кроме того, только благодаря наследованию появляется возможность
использовать объекты, исходный
код которых недоступен, но в которые
требуется внести изменения.
Наследование позволяет создавать иерархии объектов. Иерархия
представляется в виде дерева, в котором более общие объекты
располагаются ближе к корню, а более специализированные – на ветвях и
листьях. Наследование облегчает использование библиотек объектов,
поскольку программист может взять за основу объекты,
разработанные
кем-то другим, и создать наследников с требуемыми свойствами.
Объект, на основании которого строится новый объект, называется
родительским объектом, объектом-предком, базовым классом, или
суперклассом, а унаследованный от него объект — потомком, подклассом,
или производным классом.
ООП позволяет писать гибкие, расширяемые и читабельные
программы. Во многом это обеспечивается благодаря полиморфизму, под
которым понимается многообразие
форм реализаций одноименных
методов в цепочке наследуемых классов. Полиморфизм позволяет во время
выполнения программы с помощью одного и того же имени (имени
метода) выполнять разные действия или обращаться к объектам разного
типа. Чаще всего понятие полиморфизма связывают с механизмом
виртуальных методов, который мы рассмотрим в дисциплине «Технология
программирования» в следующем семестре.
Подводя итог сказанному, сформулирую достоинства ООП:
– использование при программировании понятий, близких к предметной
области;
– возможность успешно управлять большими объемами исходного кода
благодаря инкапсуляции, то есть скрытию деталей реализации объектов и
упрощению структуры программы;
– возможность многократного использования
кода за счет наследования;
– сравнительно простая возможность модификации программ;
– возможность создания и использования библиотек объектов.
Эти преимущества особенно явно проявляются при разработке программ
большого объема и классов программ. Однако ничто не дается даром:
создание объектно-ориентированной программы представляет собой весьма
непростую задачу, поскольку требует разработки иерархии объектов, а плохо
спроектированная иерархия может свести к нулю все преимущества
объектно-ориентированного подхода.
Кроме того, идеи ООП не просты для понимания и в особенности для
практического применения. Чтобы эффективно использовать готовые
объекты из библиотек, необходимо освоить большой объем достаточно
сложной информации. Неграмотное же применение ООП способно
привести к созданию
излишне сложных программ, которые невозможно
отлаживать и усовершенствовать.
Достарыңызбен бөлісу: