Самоучитель UML - [4]

Шрифт
Интервал

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

Следующий принцип ООП – инкапсуляция. Этот термин характеризует сокрытие отдельных деталей внутреннего устройства классов от внешних по отношению к нему объектов или пользователей. Действительно, взаимодействующему с классом субъекту или клиенту нет необходимости знать, каким образом реализован тот или иной метод класса, услугами которого он решил воспользоваться. Конкретная реализация присущих классу свойств и методов, которые определяют поведение этого класса, является собственным делом данного класса. Более того, отдельные свойства и методы класса вообще могут быть невидимы за пределами этого класса, что является базовой идеей введения различных категорий видимости для компонентов класса.

Если продолжить рассмотрение примера с классом «Легковой автомобиль», то нетрудно проиллюстрировать инкапсуляцию следующим образом. Основным субъектом, который взаимодействует с этим классом, является водитель. Вполне очевидно, что не каждый водитель в совершенстве знает внутреннее устройство легкового автомобиля. Более того, отдельные детали этого устройства сознательно скрыты в корпусе двигателя или в коробке передач. А в случае нарушения работы автомобиля, являющейся причиной неадекватности его поведения, необходимый ремонт выполняет профессиональный механик.

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

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

Рис. 1.5. Иллюстрация сокрытия внутренних деталей реализации методов классов

Примечание 6

Третьим принципом ООП является полиморфизм. Под полиморфизмом (греч. Poly– много, morfos – форма) понимают свойство некоторых объектов принимать различные внешние формы в зависимости от обстоятельств. Применительно к ООП полиморфизм означает, что действия, выполняемые одноименными методами, могут отличаться в зависимости от того, какому из классов относится тот или иной метод.

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

Примечание 7

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

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

Широкое распространение методологии ООП оказало влияние на процесс разработки программ. В частности, процедурно-ориентированная декомпозиция программ уступила место объектно-ориентированной декомпозиции, при которой отдельными структурными единицами программы стали являться не процедуры и функции, а классы и объекты с соответствующими свойствами и методами. Как следствие, программа перестала быть последовательностью предопределенных на этапе кодирования действий, а стала событийно-управляемой. Последнее обстоятельство стало доминирующим при разработке широкого круга современных приложений. В этом случае каждая программа представляет собой бесконечный цикл ожидания некоторых заранее определенных событий. Инициаторами событий могут быть другие программы или пользователи. При наступлении отдельного события, например, нажатия клавиши на клавиатуре или щелчка кнопкой мыши, программа выходит из состояния ожидания и реагирует на это событие вполне адекватным образом. Реакция программы при этом тоже связывается с последующими событиями.


Рекомендуем почитать
История Новосибирской области. Часть 2

Учебное пособие по истории Новосибирской области для учащихся 9-10 классов школ Новосибирской области. Издание 1977 г. Охватывает период с начала XX века до середины 70-х гг. XX века. Соответствует школьной программе по истории СССР. Содержит фактические и цифровые данные, характеризующие развитие области в период социализма. В книге используются таблицы и CSS, поэтому для чтения лучше использовать программу Cool Reader3. Для пользующихся другими программами, таблицы дублируются в графическом формате.


Социология

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


История зарубежной литературы XIX века: Реализм

Учебное пособие предлагает сжатое освещение вопросов, связанных с развитием французской и английской литератур указанного эстетического направления. Помимо изложения историко-литературного материала пособие содержит фрагменты из художественных произведений, которые становятся предметом подробного аналитического разбора.


Культурология

Учебно-методическое пособие предназначено для аудиторной и самостоятельной работы студентов-бакалавров Пензенской ГСХА по дисциплине «культурология». В нем содержатся разделы, посвященные теории, истории мировой и отечественной культуры. В данном издании содержатся необходимые методические и учебные материалы, облегчающие подготовку студента ко всем формам итогового и промежуточного контроля по данной дисциплине.


Готовые сочинения по былинам. 5-6 классы

Дорогие ребята!На уроках литературы вы знакомитесь с произведениями устного народного творчества. Один из самых сложных жанров фольклора – былины. У вас часто возникают трудности в изучении этих произведений – особенно в написании сочинений. Нынешнему школьнику непросто понять мир старинных былин и чувства, которые древнерусский сказитель вкладывал в них. В тексте былин всегда встречается много слов и образов, которые в умах и сердцах наших далёких предков вызывали яркие впечатления и горячие отклики, а современному человеку их необходимо пояснять.Эта книга поможет вам легко выполнить самые различные задания учителя: найти постоянные эпитеты в тексте былины, дать сравнительную характеристику персонажей, ответить на вопросы по содержанию произведения, подобрать пословицы на заданную тему и объяснить их происхождение и, конечно же, написать отличное сочинение.На темы, которые предлагает школьная программа, в книге представлены уже готовые сочинения.


Массовая литература сегодня

В пособии обсуждаются вопросы, связанные с историей массовой литературы, этапами ее изучения в России и на Западе, выявляются дифференциальные признаки массовой литературы, устанавливается ее место в литературном процессе и культуре, степень влияния на читательскую аудиторию, характеризуется язык текстов массовой литературы в проекции на языковую ситуацию рубежа XX–XXI веков. Особый раздел пособия посвящен филологическому анализу детектива, романа-боевика, фантастического романа, дамского романа, историко-авантюрного романа, популярной песни и некоторых других актуальных жанров массовой литературы.