Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

c#3_visual_class

.pdf
Скачиваний:
12
Добавлен:
26.03.2016
Размер:
244.19 Кб
Скачать

ВИЗУАЛЬНОЕ ПРОЕКТИРОВАНИЕ КЛАССОВ

UMLUnified Modeling Language

UML (Unified Modeling Language — унифицированный язык моделирования)

язык графического описания для объектного моделирования

вобласти разработки программного обеспечения (ПО).

UML – был создан для того, чтобы участники процесса создания ПО могли:

строить модели для визуализации проектируемой системы,

определения её структуры и поведения,

сборки системы,

документирования решений, принимаемых в процессе разработки.

UML разработан в 1997 году.

Спецификация UML 2.0 была окончательно согласована в октябре 2004 года.

Диаграммы классов Class diagrams Диаграммы классов используются для изображения классов, а также связей между ними.

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

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

Основные элементы

Графически изображаются прямоугольниками (классификатор) и линиями.

Секции классификатора

Имя

 

MyClass

 

Атрибуты

 

field : int

 

Операции

 

Method() : int

 

Обязанности:

-

Вернуть строку “Hello!”

(необязательная)

 

 

 

 

 

Изображение класса в Visual Studio

Описание класса на языке C#

 

 

 

 

Конструирование классов с помощью визуального дизайнера

Создается новый проект.

По умолчанию он имеет класс Program.

С помощью Конструктора классов (Class Designer) создается новый класс, например, Computer.

Для этого выделяется имя проекта

и открывается окно Схемы классов (ClassDiagrams).

С помощью контекстного меню Добавить или Панели элементов на схему добавляется класс, например, Computer.

В окне Сведения о классах задаются его элементы: поля, свойства, методы….

В сгенерированные шаблоны вводится программный код

Стереотипы в MS Visual Studio

Класс

Абстрактный класс

Интерфейс

Модификаторы доступа в программном коде и на схеме классов

Изображение отношений между классами

Агрегирование

Под агрегированием понимают методику создания нового класса из уже существующих классов путём включения, называемого также делегированием.

Об агрегировании также часто говорят как об « отношении принадлежности» по принципу

у машины есть корпус, колёса и двигатель».

Вложенные объекты нового класса обычно объявляются закрытыми, что делает их недоступными для прикладных программистов, работающих с классом.

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

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

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

В этом примере в отличие от отношения композиции, профессора остаются жить после разрушения университета, тогда как факультеты без университета погибают.

Агрегация

Агрегация (агрегирование по ссылке) — отношение « часть-целое» между двумя равноправными объектами, когда один объект (контейнер) имеет ссылку на другой объект.

Оба объекта могут существовать независимо:

если контейнер будет уничтожен, то его содержимое — нет. class Professor;

class Department

{private:

Professor* members[5];

};

Композиция

Композиция (агрегирование по значению) — более строгий вариант агрегирования, когда включаемый объект может существовать только как часть контейнера.

Если контейнер будет уничтожен, то и включённый объект тоже будет уничтожен.

class Department; class University

{private:

Department faculty[20];

};

// Composition

class Carburator; class Automobile { private:

Carburetor* itsCarb; public:

Automobile() {itsCarb=new Carburetor();} virtual ~Automobile() {delete itsCarb;}

};

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