Architecture Net или что такое Microsoft.NET?




Объекты

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

Объекты в реальном мире

Значение термина объект в реальном мире интуитивно понятно. Существуют конкретные, материальные осязаемые объекты (мяч, автомобиль, самолет), и более абстрактные объекты, которые представляют собой реализацию некоторых понятий (комитет, патент, страховой контракт).
У объектов есть атрибуты (характеристики), причем к объектам можно применять некоторые операции. У мяча есть размер, вес, цвет, и т.д. С мячом можно проделать некоторые действия, например, бросить, поймать и уронить.
Между классами объектов могут существовать разные отношения. Одно из таких отношений— это отношение специализации (конкретизации), например автомобиль — это один конкретный вид из различных средств передвижения. Существуют также отношения "часть—целое"; например, автомобиль состоит из двигателя, шасси, колес и т.д.

Объектные модели

Объекты могут также использоваться в программах. Они служат для реализации программной модели системы из реального мира. Программные объекты являются абстракциями объектов реального мира, они описывают те свойства реальных объектов, которые необходимы для решения данной задачи. Потом с помощью языка программирования можно реализовать программную модель системы из реального мира. Программная модель реализуется таким образом, чтобы наиболее точно моделировать реальную систему и чтобы ее можно было без труда изменить, если изменится реальная система.
Существуют формальные языки для описания объектных моделей. Самый популярный из них — это универсальный язык моделирования UML (Unified Modeling Language), который получился в результате синтеза нескольких более ранних языков моделирования. Описание формальных языков моделирования не является предметом этой книги, и потому мы будем использовать неформальные модели.

Многократно используемые компоненты

Еще одним преимуществом объектов в программировании является то, что с их помощью можно создавать многократно используемые компоненты. При проектировании аппаратных средств ЭВМ уже длительное время извлекается существенная выгода от применения компонентов аппаратных средств ЭВМ многократного использования. Например, компьютер можно собрать из блока питания, печатных плат и других комплектующих. Печатные платы можно собрать из отдельных чипов. Такие же чипы можно использовать и в других компьютерах, и потому новое оборудование не приходится проектировать с самого начала. Подходящая технология позволяет реализовать возможность такого повторного использования и в программном обеспечении. Благодаря объектам можно повторно использовать программы.

Объекты в программах

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

Абстракция

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

Инкапсуляция

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