Программирование >>  Создание клиентов mysql 

1 ... 167 168 169 [ 170 ] 171 172 173 ... 201




этой главе рассказывается о том, как использовать ъекты в базах данных 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;

/ / конструктор



1 ... 167 168 169 [ 170 ] 171 172 173 ... 201

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика