Аргерих Л. О языке РНР. Часть 1. Страница 96


• можно создать FormControlFactory для производства различных элементов форм (например, текстовых полей, групп переключателей, передающих кнопок и т. п.), размещаемых на форме HTML, типа реализованной в биб­лиотеке eXtremePHP (библиотека открытого кода РНР на http:// http://www.extremephp.org/"> www.extremephp.org/);

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

Сейчас мы рассмотрим, как создать фабрику классов и ее соответствующие

методы путем создания объектов TextField и SubmitButton (из eXtremePHP) внутри класса

Мы включим два файла классов, которые, как предполагается, были ранее приготовлены. Файл TextField. php содержит код класса TextField, a Submit­Button. 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». Теперь наше приложение может делать с этими новыми объектами все, что требуется. Важен здесь не смысл приложения, а его структура и понимание того, что выполняют мето­ды фабрики и как ими пользоваться в своих веб-приложениях.




Если вашей компании необходимо изготовить, а также перед этим разработать дизайн наружной рекламы, тогда вам на сайт bandesign.ru. Дизайн печатной рекламы это именно их конек и, заказывая у них работу вы можете быть уверенны в том, что вашу рекламу будут узнавать и будут видеть многие.