Электронный бизнес

Необходимо выполнить преобразование Basket в заказ методом объекта Оrders, который мы назовем SplitBasket.(split – расколоть)

Потребуется объект, представляющий заказ. Назовем его Order (объект данных).

Сам заказ имеет смысл только для определенного покупателя, поэтому сформируем служебный объект Customers, создающий нового клиента методом CreateCustomer. Затем потребуется объект данных Customer, отражающий соответствующий объект в БД.

Потребовалось не так много сценариев, чтобы понять состав и возможности объектов модели с точки зрения получения необходимых данных в приложении. Например, если мы добавляем метод GetOrderForCustomer в объект Orders, то мы предполагаем, что разработчик может выполнить запрос на просмотр любого заказа, оформленного данным клиентом. Если мы добавляем в объект Orders свойство Customer, мы должны обеспечить получение значения этого свойства из метода GetOrderForCustomer. Достаточно написать один код запроса к БД и извлечения заказа потребителя, чтобы реализовать два общепринятых способа получения этих данных.

Полная объектная модель

В результате полная объектная модель, включая служебные объекты Search, FireAndForget (пожар и забыть) и XML, приобретает вид:

Инфраструктурные объекты

Database. Введение инфраструктурного объекта Database преследует цели: упрощение взаимодействия с БД (объект ADO Connection)Б добавление нескольких функций обработки заказа и обеспечение прямого доступа к объекту ADO Connection. Объект Database недоступен из кода ASP.

Служебные объекты

Catalog. Доступ к каталогу товаров. Этот объект позволяет формировать отделы магазина и соответствующие товары, а также поддерживает запросы по названию компании-производителя, поставщику, отделу и категории товара. Объект создает экземпляры объекта данных Product.

Customers. Управление покупателями (клиентами). Объект регистрирует покупателя в специальной области сайта и может формировать новых покупателей в БД с занесением сведений об их адресах и кредитных карточках.

Orders. Управление заказами. Преобразует текущее содержание корзины в заказ и пересылает заказ по конвейеру обработки. Возвращает сведения об аудите.

Search. Поиск товаров в каталоге.

FireAndForget. Отправка сообщений электронной почты покупателям и посетителям в заданный день и заданное время. Поддерживает определенную часть стратегии работы с покупателями.

XML. Публикация информации из БД в виде XML, а также импорт данных XML в нашу торговую систему.

Объекты данных

Product. Представляет один из товаров, хранящихся в БД. Возвращает информацию о себе. Обеспечивает динамическое получение и установку атрибутов данных, а также добавление/получение данных об адресе, кредитной карточке и предыдущих заказах клиента.

Customer. Представляет хранящиеся в БД сведения об одном из покупателей, возвращает информацию о себе, включая данные об адресе, кредитной карточке и предыдущих заказах клиента.

Order. Представляет хранящиеся в базе данных сведения об одном из заказов. Возвращает информацию о себе, в т. числе, данные об адресе и кредитной карточке клиента и о содержимом заказа.

Basket. Представляет одну карту (корзину), хранящуюся в БД. Чаще всего этот объект содержит корзину текущего покупателя. Возвращает содержимое корзины и итоговые сведения: общую стоимость и количество наименований товаров.

ПОСТРОЕНИЕ МАШТАБИРУЕМОГО ПРИЛОЖЕНИЯ

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

Создавать объекты только при необходимости. (Принцип Jast-in-Time Activation – активация по мере необходимости)

Создавать как можно меньше экземпляров.

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

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

Перейти на страницу: 6 7 8 9 10 11 12 13 14 15 16