Производительность
объектно-ориентированных программ.
- Указывается на то, что целый
ряд «врождённых особенностей» ООП-технологии делает построенные на её основе программы технически менее эффективными, по сравнению с аналогичными необъектными программами. Не отрицая действительно имеющихся дополнительных накладных расходов на организацию работы ООП-программ (см. раздел «Производительность» выше), нужно, однако, отметить, что значение снижения производительности часто преувеличивается критиками. В современных условиях, когда технические возможности компьютеров чрезвычайно велики и постоянно растут, для большинства прикладных программ техническая эффективность оказывается менее существенна, чем функциональность, скорость разработки и сопровождаемость. Лишь для некоторого, очень ограниченного класса программ (ПО встроенных систем, драйверы устройств, низкоуровневая часть системного ПО, научное ПО) производительность остаётся критическим фактором.
- Критика
отдельных технологических решений в ООП-языках и библиотеках.
- Эта
критика многочисленна, но затрагивает
она не ООП как таковое, а приемлемость
и применимость в конкретных случаях тех
или иных реализаций её механизмов. Одним
из излюбленных объектов критики является
язык C++, входящий в число наиболее распространённых
промышленных ООП-языков.
Объектно-ориентированные
языки
- Многие современные языки специально
созданы для облегчения объектно-ориентированного
программирования. Однако следует отметить,
что можно применять техники ООП и для не-объектно-ориентированного языка и наоборот, применение объектно-ориентированного языка вовсе не означает, что код автоматически становится объектно-ориентированным.
- Современный объектно-ориентированный
язык предлагает, как правило, следующий
обязательный набор синтаксических средств:
- Объявление классов с полями (данными —
членами класса) и методами (функциями —
членами класса).
- Механизм расширения класса (наследования) —
порождение нового класса от существующего
с автоматическим включением всех особенностей
реализации класса-предка в состав класса-потомка.
Большинство ООП-языков поддерживают только единичное наследование.
- Полиморфные переменные и параметры
функций (методов), позволяющие присваивать
одной и той же переменной экземпляры
различных классов.
- Полиморфное поведение экземпляров классов
за счёт использования виртуальных методов.
В некоторых ООП-языках все методы классов являются виртуальными.
- Видимо, минимальным традиционным
объектно-ориентированным языком можно
считать язык Оберон, который не содержит никаких других объектных средств, кроме вышеперечисленных (в исходном Обероне даже нет отдельного ключевого слова для объявления класса, а также отсутствуют явно описываемые методы, их заменяют поля процедурного типа). Но большинство языков добавляют к указанному минимальному набору те или иные дополнительные средства. В их числе:
- Конструкторы, деструкторы, финализаторы.
- Свойства (аксессоры).
- Индексаторы.
- Интерфейсы (например, в Java используются также как альтернатива множественному наследованию — любой класс может реализовать сколько угодно интерфейсов).
- Переопределение операторов
для классов.
- Средства защиты внутренней
структуры классов от несанкционированного
использования извне. Обычно это модификаторы
доступа к полям и методам, типа public, private, обычно также protected, иногда некоторые другие.
- Часть языков (иногда называемых
«чисто объектными») целиком построена
вокруг объектных средств — в них любые
данные (возможно, за небольшим числом
исключений в виде встроенных скалярных
типов данных) являются объектами, любой
код — методом какого-либо класса, и
невозможно написать программу, в которой
не использовались бы объекты. Примеры
подобных языков — Smalltalk, Java, C#, Ruby, AS3. Другие языки (иногда используется термин «гибридные») включают ООП-подсистему в исходно процедурный язык. В них существует возможность программировать, не обращаясь к объектным средствам.
Заключение
В последнее
время многие программы, в особенности
объектно-ориентированные, реализуются
как системы визуального программирования.
Отличительной особенностью таких систем
является мощная среда разработки программ
из готовых «строительных блоков», позволяющая
создать интерфейсную часть программного
продукта в диалоговом режиме, практически
без кодирования программных операций.
Список литературы
- 1.С.В. Симонович Информатика. Базовый курс. 2-е издание
- 2.Артыкбаев. «Информатика» Алматы 2007 год
- Изтлеуов
М.К. и др., Информатика, Актобе, 2005
- Абишева А.М., Ташимбекова ., Информатика, 1995 год
- 3. Сайт интернета: www.Google.kz
СПАСИБО
ЗА ВНИМАНИЕ
!!!!