|
Программирование >> Создание клиентов mysql
этой главе рассказывается о том, как использовать ъекты в базах данных MySQL ентированная модель пытается отражать сущности реального мира с помощью структур данных. Не существует простого способа установить соответствие между объектами и таблицами реляционных баз данных. Решением этой проблемы занимаются уже не один год. В настоящее время наиболее популярной методикой является так называемый уровень постоянства (persistence layer). Это особый набор функций, обеспечивающих преобразование данных при их передаче между приложением и базой данных. Большинство реализаций методики основано на работах Скоттера (Scott Ambler). Он публикует многочисленные статьи и спецификации на своем Web-узле tvwtv,ambysoft.com. Компании eForge (www.sourceforge.net) ведет несколько открытых проектов, посвященных реализации уровней постоянства. Наиболее популярный среди них - проект age (http: osage.sourceforge.net). Программистов, работающих на языке Perl, заинтересует проект gram (www.soundobjectlogic.com/tangram). Компания Sun разработала интерфейс(Java Dat ects- объекты данных Java), обеспечивающий прозрачный доступ к объектам базы данных. В этой главе будут описанылишь основные концепции объектно-ориентированной модели и рассмотрены решения, имеющиеся в программе MySQL. Приводимые примеры сценариев написаны на Объектно-ориентированная модель В модели структуры данных называются объектами. Они имеют свойства и методы. Свойства- это отдельные атрибуты объекта. У каждого свойства есть имя и значение в строго заданном диапазоне. Например, у объекта может быть свойство Age (возраст), содержащее неотрицательное целое число. Набор значений всех свойств определяет состояние объекта. Методы- это действия, выполняемые объектом. Как и функция, метод принимает список аргументов и возвращает значение. Методы и свойства могут быть открытыми либо закрытыми. Открытые методы разрешается вызывать кому угодно, тогда как вызов закрытого метода может осуществить лишь сам объект. То же самое относится и к свойствам. Объект представляет собой уникальный экземпляр класса. Класс содержит определения методов и свойств и является своего рода шаблоном объектов. Таким образом, термины объект и класс представляют собой разные понятия. С помощью механизма наследования можно создавать иерархии классов. Класс, входящий в иерархию, наследует часть свойств и методов своих родительских классов, дополняя их собственными уникальными атрибутами. При одиночном наследовании у класса есть только один непосредственный предок, а при множественном наследовании - несколько предков. Объекты называются полиморфными, если их функционирование зависит от контекста. Пример полиморфизма - разная реакция на вызов одного и того же метода. Представим, к примеру, что существует метод calculateSpeed (), предназначенный для вычисления скорости объекта. Неизвестно заранее, к какому именно объекту в иерархии классов будет применен данный метод. Если это объект класса Саг (автомобиль), скорость вычисляется в километрах в час. Если же это объект класса Computer (компьютер), скорость вычисляется в мегагерцах. Здесь упомянута важнейшая особенность полиморфных объектов: они способны принимать облик любого из родительских классов. Рассмотрим рис. 30.1. В этой иерархии существует класс Sedan (седан), порождающийся от класса Саг, который, в свою очередь, наследует класс Vehicle (транспортное средство). Поскольку класс Sedan тоже является потомком класса Vehicle, объект класса Sedan можно использовать везде, где допустим класс Vehicle. Например, у транспортного средства есть определенное число колес. Предположим, в классе Vehicle создан метод getWheelsO, возвращающий число колес объекта. Для автомобиля метод вернет значение 4, а для велосипеда- 2. Оба класса. Саг и Bicycle, наследуют метод getwheels () от родительского класса Vehicle. Рис. 1. Иерархия наследования Сериализация объектов 527 Сериализация объектов Концепции изации существует во многих языках программирования. Функции изации позволяют преобразовать объект в упорядоченную последовательность символов. Эту последовательность можно посылать по сети и записывать на диск. Для хранение гаованных объектов удобно применять столбца: типа TEXT. В листинга .1 приведена инструкция CREATE TABLE, создающая таблицу таких объектов. CREATE TABLE object ( ID INT NOT NULL AUTO INCREMENT, Data TEXT, PRIMARY KEY (ID) В листинге 30.2демонстрируется Сериализация объекта на язык НР. В сценарии определяются два класса: Building (здание) и Room (комната). В объект home класса Building добавляются два объекта класса Room, после чего объект home сохраняется в таблица ect. Функция serialize) преобразует содержимое объекта в длинную строку, которая записывается в столбец Data. <?php класс зданий class Building { var $nanie; массив комнат var $room; functiongetRoom($id) return($this->room[$id][ function { $this->room[] = $room; класс комнат class Room var $name; / / конструктор
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |