Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модуль-1-шпора-ТРПО.doc
Скачиваний:
60
Добавлен:
21.03.2015
Размер:
2.59 Mб
Скачать

1) Абстрагирование является одним из главных способов, используемых для решения сложных задач.

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

Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности поведения от несущественых. Разделение смысла и реализации называется барьером абстракции. Барьер абстракции основывается минимизации связи, когда интерфейс объекта содержит только существенные детали поведения. Выбор правильного набора абстракций для заданной предметной области является главной задачей ОО проектирования.

2) Ограничение доступа (инкапсуляция).

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

3) Модульность.

Модульность – свойство системы, связанное с возможностью декомпозиции ее на ряд тесно связанных модулей.

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

  1. Структура модуля должна быть достаточно простой для восприятия;

  2. Реализация каждого модуля не должна зависеть от реализации другого модуля;

  3. Должны быть приняты меры для обеспечения возможности внесения изменений там, где они наиболее вероятны;

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]