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


}

return false;

}

Метод stop() устроен аналогично. Он проверяет, работает ли двигатель, и ес­ли да, то останавливает автомобиль. Обратите внимание, что проверку рабо­ты двигателя можно было бы выполнить в функции stop() объекта engine, чтобы вообще не думать о ней. Необходимо часто задаваться вопросами о том, где лучше поместить логику. Это основа разработки хорошей, успеш­ной

function stop()

{

if ($this->engine->isRunning()) { $this->engine->stop();

)

}

// Некоторые другие функции, такие как движение, поворот и т. д. Теперь посмотрим, как этот объект может быть использован в программах.

Объекты

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

<?php

5 carl = new Car(); $car2 = new Car() ;

Новые экземпляры класса, т. е. новые объекты, создаются с помощью клю­чевого слова new. Ссылки на вновь созданные объекты помещаются в пере­менные $саг1 и соответственно. Теперь у нас есть два объекта до­ступных для использования. А для того чтобы создать десять автомобилей, мы могли бы воспользоваться таким массивом объектов:

$cars = array(); for ($i = 0; $i < 10; $i++) { $cars[$i] = new Car();

>

Чтобы завести автомобиль, мы вызываем его метод =

if (ScarHasStarted) echofCar has started."); А чтобы остановить автомобиль, следует поступить так:

$car1->stop();

Как можно видеть, использовать интерфейс этого объекта просто. При этом не требуется знать, как устроен этот метод. Программисту надо лишь знать, какие сервисы предоставляет объект. Эта программа вполне могла бы заво­дить и останавливать физический автомобиль, оставляя совершенно неиз-

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

Фабричные методы

Иногда удобно не вызывать самому оператор new, а попросить некоторый объект создать для вас новый объект. Такие классы называются фабриками (factories), а методы, которые создают объекты, называются фабричными методами (factory methods). Слово «фабрика» в данном контексте представ­ляет собой метафору производственного оборудования. Например, фабрика, производящая двигатели и принадлежащая General Motors, вполне анало­гична фабрике объектов, производящей объекты конкретного типа. Не вни­кая пока слишком подробно в сложные объектные модели, посмотрим, как можно использовать фабрики в некоторых областях разработки веб-прило­жений. Вот несколько примеров:




На сайте "Русская недвижимость" вы найдете ответы на любые вопросы, связаны с налогами, приватизацией, ипотекой, арендой, наследством и многие другие. Здесь вы найдете аналитические материалы, такие как регулярные встречи с жителями района Марфино, которые помогут вам лучше сориентироваться на рынке недвижимости.