• можно создать FormControlFactory для производства различных элементов форм (например, текстовых полей, групп переключателей, передающих кнопок и т. п.), размещаемых на форме HTML, типа реализованной в библиотеке eXtremePHP (библиотека открытого кода РНР на http:// http://www.extremephp.org/"> www.extremephp.org/);
♦ можно создать фабрику, которая будет вставлять новую строку в таблицу базы данных и возвращать соответствующий объект доступа к данным для этой конкретной строки.
Сейчас мы рассмотрим, как создать фабрику классов и ее соответствующие
методы путем создания объектов TextField и SubmitButton (из eXtremePHP) внутри класса
Мы включим два файла классов, которые, как предполагается, были ранее приготовлены. Файл TextField. php содержит код класса TextField, a SubmitButton. php содержит код класса SubmitButton. Как вы вскоре увидите, конструкторам этих классов при создании новых экземпляров надо передать имя и значение:
<?php
include .once("./TextField.php"); include_once("./SubmitButton,php");
Разрабатывая класс фабрики, полезно добавить в конец имени класса слово «Factory». Оно стало общепринятым в объектно-ориентированном мире и помогает другим программистам определить, чем занимается класс, основываясь на стандартной
// FormControlFactory.php
class FormControlFactory
Первым нашим методом фабрики будет Он просто создает
новый экземпляр класса TextField, передавая ему указанные клиентом $name и $value:
function createTextField($name, $value) {
return new TextField($name, $value);
J
Метод определяется аналогичным образом. Общеприня
тым соглашением является и слово «create» в начале метода фабрики, означающее, что он возвращает новый объект. Таким образом устанавливается единая терминология в рамках всего приложения, что облегчает понимание кода и возможности его трассировки:
function createSubmitButton($name, lvalue) {
return new SubmitButton($name, $value);
)
}
Теперь вместо создания объектов TextField и SubmitButtor с помощью оператора пе\уможно сделать это посредством FormControlFactory:
SformControlFactory = new FormControlFactory(); $firstNameField =
$formControlFactory->createTextField('firstname', 'Ken'); =
$formControlFactory->createTextField('lastname', 'Egervari'); =
$formControlFactory->createSubmitButton('submit' F 'Submit Name-);
?>
Мы создаем новый экземпляр FormControlFactory и три новых объекта с помощью методов фабрики. Первые два обращения к создают текстовые поля, в которых хранятся имя и фамилия. Следующий вызов создает кнопку передачи с надписью «Submit Name». Теперь наше приложение может делать с этими новыми объектами все, что требуется. Важен здесь не смысл приложения, а его структура и понимание того, что выполняют методы фабрики и как ими пользоваться в своих веб-приложениях.