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


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

Правильное проектирование объектов и их конструкторов - проблема, с ко­торой часто встречаются многие разработчики. Когда конструкция класса такова, что программисту приходится устанавливать члены объекта, чтобы использовать его методы, или класс вынуждает программиста придержи­ваться специального порядка при вызове методов объекта, получается запу­танный и не вполне понятный код. С помощью ООП всего этого можно избе­жать. Если класс не обращается к возможностям конструктора для иници­ализации его главных частей, это означает, что он плохо спроектирован. Стремитесь избегать таких

Хорошо спроектированный класс устраняет массу проблем с программирова­ нием, отладкой и сопровождением.

Взглянем на общий синтаксис класса в РНР, иллюстрирующий применение трех типов компонентов:

class ClassName [extends ParentclassName] {

var $member1; var $member2;

var $memberN;

// Конструктор function ClassNameO

function raethod1() function method2()

function methodNQ

>

Как видно, класс состоит лишь из ряда определяемых членов (переменных) и методов (функций). Члены могут относиться к элементарным типам дан­ных, таким как целые числа или строки, либо к более сложным, таким как массивы или другие объекты. Поскольку РНР не требует задания типа, можно просто указать имена переменных в начале описания класса, как это сделано выше.

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

Методы представляют собой просто сервисы, которые класс предоставляет своим клиентам. Клиентами могут быть другие программы, другие объек­ты, сценарий и т. д.

Напишем код для класса Определение нашего класса начнем с ключево­го слова class во второй строке. Хороший стиль программирования рекомен­дует выделять первые буквы имен классов как заглавные, чтобы отличать их от переменных и функций.

Программисты долгие годы придерживаются такой практики в других язы­ках. Легко отличить конструктор от других методов класса. Кроме того, по­лезно давать файлам имена, совпадающие с именем класса, например Car, php. В файле должен быть только один класс. Если есть несколько взаи­мосвязанных классов, например набор классов основных типов данных, сле­дует поместить их в подкаталог основного приложения. При работе над большими проектами это просто необходимо.




Только на нашем сайте вы сможете скачать картинки любых жанров и любой цветовой гаммы, в том числе и картинки тетрадь смерти. Вам только надо освободить место на своем компьютере, чтобы получить яркую картинку для обоев или др.