Абстракция, инкапсуляция, сокрытие информации. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Абстракция, инкапсуляция, сокрытие информации.



Основные понятия ООП – абстракция, инкапсуляция, сокрытие информации.

1. Абстракция – это процесс идентификации (и моделирования) наиболее важных аспектов сущности и игнорирование всех остальных ее малозначащих свойств.

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

2. Понятие инкапсуляция означает, что объект содержит как 1) структуру данных, так и 2) набор операций, с помощью которых этой структурой можно манипулировать.

3. Понятие (концепция) сокрытие информации означает, что все внешние аспекты объекта отделяютсяот подробностей его внутреннего устройства, скрытых от внешнего мира. Таким образом, внутренние детали строения объекта могут быть изменены без какого-либо влияния на приложения, в которых он (объект) используется, при условии, что внешние детали (аспекты) остаются теми же. Это позволяет исключить излишнюю зависимостьприложений от структурыданных. Если такую зависимость не устранить, то небольшоеизменение способа представления информации способно породить значительныеизменения во многих частях приложений. Иначе говоря, сокрытие информации обеспечивает независимость приложений от структуры данных.

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

Существует два представления об инкапсуляции: 1) представление объектно-ориентированного языка программирования (ООЯП ® объект Паскаль) и 2) адаптация этого представления для нужд баз данных.

В некоторых ООЯП инкапсуляция достигается за счет использования абстрактных типов данных (Abstract Data Types - ADT). В этом представлении объект состоит из интерфейса и реализации. Интерфейс представляет спецификацию (набор) операций, которые могут быть выполнены с объектом; а реализация состоит из структуры данных для ADT и функций, которые реализует этот интерфейс. В представлениибазыданных должная инкапсуляция достигается благодаря тому, что программисты обладают правом доступа только к интерфейсу. Таким образом, инкапсуляция обеспечивает логическую независимость от данных, т.е. внутреннюю реализацию ADT можно изменять, не затрагивая приложения, которые используют этот ADT.

Объекты и атрибуты

Многие важные понятия объектно-ориентированного подхода взяты из языка программирования SIMULA, разработанного в Норвегии (1966 г) для моделирования процессов реального мира. Модули языка SIMULA строились не на процедурах, как в обычных языках программирования, а на «физических» объектах, которые имитировались в процессе моделирования. Такой подход оправдан тем, что объекты являются ключевымкомпонентом моделирования: каждый объект должен иметь информацию 1) о его текущем состоянии, а также 2) моделируемые действия (поведение). В частности в языке SIMULA дается следующее определение объекта.

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

Примерами моделируемых объектов можно считать: ВУЗ, кафедру, сотрудника, студента, объект недвижимости и т.д. Концепция объекта сравнительно проста и в то же время достаточно мощная: каждый объект может определяться и поддерживаться независимо от других. Это определение объекта по сути аналогично определению сущности, данное в курсе ИОСУ. Напомню. Типсущности – это класс объектов или концепции, которые в данной ПО характеризуются как имеющие независимое существование. Экземплярсущности – это один из набора объектов, который может быть идентифицирован уникальным образом. Свойства (состояние) экземпляра сущности определяются значениями атрибутов.

Однако объект при объектно-ориентированном подходе инкапсулирует и состояние, и поведение, а сущность в РМД (ИМД(МД)) моделирует только состояние.

Текущее состояние объекта описывается одним или несколькими атрибутами или переменными экземпляра. Например, отделение компании «Аренда недвижимости», расположенное по адресу «улица Зеленая 10» может иметь атрибуты, приведенные в таблице 2.3.2.1.

 

 

Атрибуты одного экземпляра объекта типа «отделение компании»

Табл. 2.3.2.1

Атрибуты могут быть простыми и составными. Например, атрибут «Номер отделения» является простым.

Составной атрибут может содержать коллекции и/или ссылки. Например, атрибут «Сотрудники-продавцы» является коллекцией типа «Сотрудники». Ссылочный атрибут представляет связь между объектами. Он содержит значение (или коллекцию значений), которое также является объектом. Например, атрибут «Сотрудники-продавцы», если говорить точнее, является коллекцией ссылок на объекты типа «Сотрудники». Объект, который содержит один или несколько составных частей, называется составным объектом. Атрибуты обычно указываются с помощью точки. Например, атрибут «Улица» объекта «Отделение компании»:

Отделение – object.улица.

Идентификация объекта

Ключевой частью определения объекта является уникальность его идентификации. В объектно-ориентированной системе (ООС) каждому объекту в момент его создания присваивается идентификатор объекта (Object Identifier - OID), который обладает следующими свойствами:

¾ генерируется системой;

¾ уникально обозначает этот объект;

¾ инвариантен в том смысле, что его нельзя изменить во время жизненного цикла программы – после создания объекта его OID-идентификатор не может быть использован повторно ни для какого другого объекта;

¾ не зависит от значений его атрибутов (т.е. от его текущего состояния), два объекта могут иметь одинаковое состояние, но всегда обладают разными OID;

¾ скрыт от пользователя (в идеале).



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 544; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.174.55 (0.011 с.)