Перепишите класс POINT таким образом, чтобы в качестве базового использовалось бы представление точки в полярных, а не декартовых координатах.

<p>Лекция 8. Динамические структуры: объекты</p>

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

<p>Объекты</p>

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

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

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

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

<p>Что такое объект?</p>

Прежде всего, необходимо напомнить смысл термина "объект". Полная ясность была внесена в предыдущей лекции в виде строгого определения (Определение и объективное правило, см. лекцию 7):

Определение: объект

Объект - это экземпляр некоторого класса

Во время выполнения программная система, содержащая класс C, может в разных точках, используя процедуры создания или клонирования, создавать экземпляры C, - структуры данных, соответствующие образцу, заданному классом C. Например, экземпляр класса POINT представляет собой структуру данных, состоящую из двух полей, соответствующих атрибутам x и y класса. Экземпляры всех возможных классов составляют множество объектов системы.

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

Перейти на страницу:

Похожие книги