Стиль разработки объектно-ориентированных проектов — КиберПедия 

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Стиль разработки объектно-ориентированных проектов

2018-01-03 232
Стиль разработки объектно-ориентированных проектов 0.00 из 5.00 0 оценок
Заказать работу

8.1. Общие правила оформления классов

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

Составление атрибутов

Атрибуты класса должны быть связаны с базовыми свойствами этого класса в предметной области и не должны быть связаны с конкретной задачей или методом реализации этой задачи. Не рекомендуется использовать атрибуты, предназначенные для хранения временных переменных, или являющиеся просто заменителем описания локальных переменных в методах. Так, например, для класса “матрица” нельзя вводить атрибуты i, j, которые предназначены для того, что бы не описывать локальные переменные i и j в реализации каждого метода. Лишние атрибуты резко ухудшают читабельность программ и являются дополнительным источником ошибок.

Необходимое и достаточное количество свойств

Каждый класс должен содержать необходимое и достаточное количество свойств (атрибутов и методов поведения). Нужно избегать слишком слабого или слишком детального определения классов. Наиболее типичный класс должен включать не более 10 атрибутов и не более 10 методов поведения. При превышении этого количества стоит подумать о создании нового класса. Недостаточное количество свойств приведет к необходимости добавления их во всех производных класса, что замедлит повторное использование класса. Избыточность свойств приведет к тяжеловесности программы при выполнении и чтении.

Конструкторы

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

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

Независимость от системных библиотек и реализации

Базовые классы не должны использовать операции ввода или вывода. Это связано с тем, что базовые классы часто будут использоваться, а это в свою очередь приводит к выводу о том, что данные для них часто будут формироваться с помощью других программ, а не вводиться пользователем. Если в методе “вставить” для хэш-таблицы будет использоваться ввод с клавиатуры для получения значения ключа, то такую таблицу невозможно будет использовать в компиляторе. Аналогичная ситуация сложится, если этот же метод после вставки выдаст на экран сообщение вида “вставка успешно завершена”.

Наследование

Наследование разделяется на две важные части:

· наследование атрибутов,

· наследование методов поведения.

Наследование атрибутов

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

 

Рис. 8.1. пример наследования атрибутов.

и пусть необходимо для каждой фигуры добавить атрибут “цвет заполнения внутренней области”. Наследование позволяет очень легко модифицировать группу структур данных за одну операцию. Но это можно сделать двумя способами: во-первых, можно ввести новый атрибут “цвет” в класс “геометрическая фигура” и по наследованию этот атрибут получат все новые фигуры, во-вторых, можно ввести новый класс “цветная фигура”, как наследника от “геометрической фигуры”. Посмотрим на различия этих двух вариантов:

новый класс увеличивает количество классов и следовательно сложность проекта,

точка изгиба в многоугольнике не должна иметь цвет.

Таким образом можно сказать, что добавляя новый атрибут в некоторый класс необходимо учесть следующие обстоятельства: можно добавить атрибут без добавления класс, но необходимо взвесить, что более накладно создать новый класс или иметь не нужные атрибуты в других классах.


Поделиться с друзьями:

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

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

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.