ППС (9) - Лекция №9 - Объектно-ориентированный подход

Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана - студенческое сообщество
Версия от 21:40, 27 ноября 2012; ILobster (обсуждение | вклад) (Концепции)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

...начало

Arrow left.png

Создание сложной системы

Характеристики модуля

Чем характеризуется модуль при попытках его изменения, отладке и поиске ошибок:

  • функциональная прочность. После проведения декомпозиции и разбиения модуля на несколько, его функциональность должна сохраняться;
  • информационная прочность - когда данные, используемые модулем, находятся внутри самого же модуля, внешние переменные не используются;
  • сцепление:
    • по данным - передача данных из модуля в модуль должна быть управляемой. А лучше вообще не передавать данные от модуля к модулю;
    • по общей области - избегать его всеми силами;
    • по управлению;
    • по формату;
    • по содержимому - по общим константам. Определил однажды число $\pi$ длиной 5 знаков, и больше нигде его не переопределяй ни на другое значение, ни даже на другую длину;
  • размер модуля - исключительно для удобства человека, чтобы модуль был обозримым.

Основы объектно-ориентированного подхода

Концепции

Фундаментальные свойства объектов:

  • абстракция:
    • выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, чётко определяет его концептуальные границы с точки зрения наблюдателя;
    • разделяет смысл и реализацию объекта;
    • выделение существенных особенностей объекта и отделения их от несущественных - барьер абстракции;
  • инкапсуляция:
    • реализует абстракцию, скрывая внутреннюю структуру объекта и предоставляя вовне только внешнее поведение - интерфейс;
  • модульность - свойство системы, которая была разложена на внутренние связные, но слабо связанные между собой модули:
    • модули выполняют роль физических контейнеров, в которые помещаются определения классов и объектов;
    • позволяет хранить абстракции отдельно;
  • иерархия:
    • концепция наследования "обобщение-специализация" (is-a);
    • агрегация (part of);
  • наследование - один класс заимствует структурную или функциональную часть другого;
  • типизация;
  • полиморфизм.

Arrow right.png

продолжение...