
- •Роль инкапсуляции
- •Роль наследования
- •Роль полиморфизма
- •Конструкторы
- •Конструктор копирования
- •Деструкторы
- •Перегрузка методов
- •Перегрузка операторов
- •Перегрузка бинарных операторов
- •Перегрузка унарных операторов
- •Выполнение операций со встроенными в с# типами данных
- •Переопределение методов Перекрытие методов
- •Сокрытие методов
- •Вызов базовых версий методов
- •Область видимости переменных
- •Конфликты областей видимости локальных переменных
- •Конфликты областей видимости полей и локальных переменных
- •Константы
- •Модификаторы доступа
- •Пространства имен
- •Uml. Диаграмма вариантов использования. Привести пример.
- •Чтение схем вариантов использования
- •Субъекты, варианты использования и подсистемы
- •Структурирование вариантов использования
- •Количество элементов между субъектами и вариантами использования
- •Задание количества элементов в ассоциации
- •Uml. Диаграмма классов. Привести пример.
- •Типы атрибутов и операций
- •Несколько типов
- •Атрибуты и ассоциации
- •Обобщение
- •Реализация
- •Uml. Диаграмма последовательности. Привести пример.
- •Создание схемы последовательностей
- •Изменение порядка сообщений
- •Перемещение или копирование последовательностей сообщений на схеме последовательностей
- •Оптимизация размещения элементов на схеме последовательностей
- •Изменить пакет, владеющий взаимодействием
- •Типы сообщений
- •Создание заметок о взаимодействиях
- •Инициирующее событие
- •Уровень детализации
- •Uml. Диаграмма деятельности. Привести пример. Простые потоки управления
- •Параллельные потоки
- •Потоки данных
- •Основные этапы создания схем активности
- •Uml. Диаграмма кооперации. Привести пример.
- •Uml. Диаграмма состояний. Привести пример.
- •Понятие состояния объекта
- •Переход
- •Сложные переходы
- •Переходы между параллельными состояниями
- •Переходы между составными состояниями
- •Синхронизирующие состояния
- •Uml. Диаграмма компонентов. Диаграмма развертывания. Привести пример.
- •Структурный паттерн проектирования «Компоновщик». Привести пример.
- •Структурный паттерн проектирования «Оболочка». Привести пример.
- •Структурный паттерн проектирования «Мост». Привести пример.
- •Структурный паттерн проектирования «Адаптер». Привести пример.
- •Структурный паттерн проектирования «Заместитель». Привести пример.
- •Структурный паттерн проектирования «Приспособленец». Привести пример.
- •Поведенческий паттерн проектирования «Команда». Привести пример.
- •Поведенческий паттерн проектирования «Наблюдатель». Привести пример.
- •Поведенческий паттерн проектирования «Состояние». Привести пример.
- •Поведенческий паттерн проектирования «Итератор». Привести пример.
- •Поведенческий паттерн проектирования «Цепочка обязанностей». Привести пример.
- •Поведенческий паттерн проектирования «Шаблонный метод». Привести пример.
- •Порождающий паттерн проектирования «Абстрактная фабрика». Привести пример.
- •Порождающий паттерн проектирования «Абстрактный метод». Привести пример.
- •Порождающий паттерн проектирования «Одиночка». Привести пример.
- •Порождающий паттерн проектирования «Прототип». Привести пример.
- •Порождающий паттерн проектирования «Строитель». Привести пример
- •Архитектурный шаблон проектирование mvc. Привести пример. Введение
- •«Оригинальный» mvc
- •Model (Модель)
- •View (Представление)
- •Controller (Контроллер)
- •Недостатки mvc и Document-View
- •Почему интерфейс?
- •Отличия от mvc
- •Заключение
Типы атрибутов и операций
Можно определить следующие типы атрибутов, операций и параметров.
(нет) — можно не задавать тип в сигнатуре, опустив предшествующее двоеточие (
:
).Стандартными типами-примитивами являются следующие: Boolean, Integer и String.
Тип, определенный в модели.
Параметризованное значение типа шаблонов, записанное как Template<Parameter>.
Несколько типов
Можно задать количество элементов любого атрибута, операции или типа параметров.
Допустимы следующие значения.
Количество элементов |
Атрибут, параметр или возвращаемое значение содержит следующее. |
|
Одно значение заданного типа.Это значение по умолчанию. |
|
Null или значение заданного типа. |
|
Коллекция, в состав которой может входить неограниченное число экземпляров заданного типа. |
|
Коллекция хотя бы одного экземпляра заданного типа. |
|
Коллекция,
в которую входит от |
Атрибуты и ассоциации
Ассоциация — это графический способ представления атрибута. Например, вместо того чтобы создавать класс "Ресторан" с атрибутом типа "Меню", можно создать ассоциацию из элементов "Ресторан" и "Меню".
Каждое
имя атрибута становится именем роли.
Оно отображается на противоположном
типу-владельцу окончании ассоциации.
Например, обратите внимание на myMenu
на этой иллюстрации.
Как правило, рекомендуется использовать атрибуты только для типов, которые не отображаются на схеме, например для типов-примитивов.
Наследование
Используйте инструмент Наследование для создания следующих отношений.
Отношение обобщения между специализированным типом и общим типом.
- или -
Отношение реализации между классом и реализуемым им интерфейсом.
Невозможно создавать циклы в отношениях наследования.
Обобщение
Обобщение означает, что специализирующий или производный тип наследует атрибуты, операции и ассоциации общего или базового типа.
Общий тип отображается на окончании отношения с наконечником стрелки.
Наследуемые операции и атрибуты, как правило, не отображаются в специализирующих типах. Однако можно добавить наследуемые операции в список операций специализирующего типа. Такой подход эффективен, если необходимо переопределить некоторые свойства операции в специализирующем типе, либо если необходимо указать, что переопределять свойства нужно с помощью реализующего кода.
Реализация
Реализация означает, что класс реализует атрибуты и операции, заданные в интерфейсе. Интерфейс находится на окончании соединителя с наконечником стрелки.
При создании соединителя реализации операции интерфейса автоматически реплицируются в реализующем классе. При добавлении в интерфейс новых операций они реплицируются в реализующих классах интерфейса.
После создания отношения реализации можно преобразовать его в обозначение без описания операций. Щелкните отношение правой кнопкой мыши и выберите Показывать без описания операций.
Так можно показать интерфейсы, реализуемые классом, не усложняя схемы классов многочисленными ссылками реализации. Также на отдельных схемах можно показать интерфейс и реализующие его классы.