- •Эволюция языков программирования
- •Объектная декомпозиция.
- •Классы и объекты
- •Конструкторы и деструкторы.
- •Основные средства разработки классов
- •Описание класса в с#
- •Деструкторы
- •3.Методы-свойства
- •Наследование в c#
- •Интерфейсы, структуры, делегаты, события. Интерфейс.
- •Операции is и as
- •Стандартные интерфейсы .Net
- •Делегаты
Объектная декомпозиция.
При использовании ООП решение задачи представляется в виде результата взаимодействия отдельных функциональных элементов (объектов) некоторой системы, имитирующей процессы, происходящие в предметной области задач.
Объектная декомпозиция – процесс представления предметной области задачи в виде совокупности объектов, обменивающихся сообщениями.
Черновой план процесса объектной декомпозиции:
Выделить классы и объекты
Определить, что они означают
Выявить связь между классами и объектами
Описать интерфейс и реализацию
Пример. Простейший графический редактор
Рисование круга и квадрата
Возможность изменения цвета, размера и координат центра.
активизировать
Круг (нарисовать) управляющий блок (нарисовать) квадрат
(изменить цвет) (изменить цвет)
(изменить размер) (изменить размер)
( Изменить координаты) (изменить координаты)
Пример. Адресная книга
Требуется написать программу, в которой можно:
Открывать адресную книгу
Добавлять записи о контактах
Вести поиск записей
Составим диаграмму состояний интерфейса
Меню
Режим открытия книги режим добавления записей режим поиска записей
«некорректное имя файла» нет информации о контакте
Диаграмма объектов
Активизировать
Меню
Активизировать активизировать активизировать
Форма открытия файла форма «добавления записей» Форма «поиск записей»
Поиск записей
Активизировать Активизировать
Сообщение «некорректное имя файла» Файл Сообщение «нет информации о контакте»
Объектная декомпозиция может быть многоуровневой.
Пример. Объектная декомпозиция меню, форма, файл.
Пример: Фермер
Управление
Фермер
Корова 3 Овца 3 курица 3
Корова 2 Овца 2 курица 2
Корова 1 Овца 1 курица 3
Алгоритм построения диаграммы классов:
Составить варианты использования
Выделить понятия-кандидаты на роль классов
Определить, какие из кандидатов действительно являются классами
Описать взаимосвязи классов
Установить атрибуты классов.
Варианты использования:
Для определения понятий-кандидатов на роли классов составляют варианты использования – описания того, каким образом разрабатываемая система может применятся пользователем.
Понятие-кандидат не подходит на роль класса, если:
Понятию соответствуют единственное число, переменная или простая структура в программе
Понятие строго соответствует более сложному понятию, например, входя в его состав.
В этом случае понятие скорее всего является атрибутом другого класса.
Пример:
понятие «возраст» описывается одной переменной и является атрибутом класса «студент»
Можно ли понять «дисциплина» назначить атрибутом класса преподаватель? (в целом может быть отдельным классом))
Обозначение классов:
Основным элементом диаграммы классов являются классы:
имя класса
Имя класса Атрибуты
Методы
Типы связей между классами:
Ассоциация
Обобщение (наследие)
Агрегация (композиция)
Использование
Ассоциация
Означает наличие сематической связи между 2мя классами.
Остальные отношения уточняют тип связи
Ассоциации могут иметь имя и направление, объектом ассоциации могут быть составлены роли.
Для ассоциации можно определить характеристики множественности, определяющие, сколько объектов может участвовать в одной связи с каждой стороны.
Обозначения
-
*
От 0 до бесконечности
<целое>..*
От заданного числа до бесконечности
<целое>
Точно определенное количество объектов
<целое1>, <целое2>
Несколько вариантов точного количества
<целое1>..<целое2>
Диапазон объектов
Обобщение (наследование)
Обобщение - это отношение между понятиями вида «общее-частное»
Обобщающее понятие называется супертипом (родителем, предком)
Агрегация (композиция)
Агрегация – отношение между понятиями вида «целое-часть» (факультет кафедра)
Использование
Использование – отношение между понятиями вида «клиент-сервер» (студент 0---- отдел кадров)
Пример графический редактор
Пример разработки диаграммы классов
Графический редактор
Понятия-кандидаты на роль классов: фигура, меню, круг, квадрат, цвет, размер, координаты центра.
Ф игура
Центр
Размер
Координаты
Круг квадрат
Пример адресная книга
Варианты использования:
Добавление записей
Поиск записей
Понятия-кандидаты: шаблон записей, шаблон поиска, шаблон имени файла, запись, файл, имя файла и тд.
М еню
Вызывает Вызывает Вызывает
Шаблон ввода имени файла шаблон добавления шаблон голоса
Добавляет запись
Запись
Файл
Имя файла
Сообщение
Текст
Пример калькулятор
Пример разработки диаграммы классов
Калькулятор:
Составить варианты использования
Выделить кандидатов на роль классов
Определить какие из кандидатов действительно являются классами
Описать взаимосвязи классов
Установить атрибуты классов
(ДЗ!!!)