Приднестровская поддержка XOOPS
Ниже приведен тот же пример, но реализованный в стиле ООП
<?php
class Person
{
private $_name;
private $_job;
private $_age;
public function __construct($name, $job, $age)
{
$this->_name = $name;
$this->_job = $job;
$this->_age = $age;
}
public function changeJob($newjob)
{
$this->_job = $newjob;
}
public function happyBirthday()
{
++$this->_age;
}
}
// Создать два новых объекта
$person1 = new Person("Tom", "Button-Pusher", 34);
$person2 = new Person("John", "Lever Puller", 41);
// Вывести их начальные состояния
echo "<pre>Person 1: ", print_r($person1, TRUE), "</pre>";
echo "<pre>Person 2: ", print_r($person2, TRUE), "</pre>";
// Повысить Тома в должности и учесть изменение возраста
$person1->changeJob("Box-Mover");
$person1->happyBirthday();
// Джон лишь становится на год старше
$person2->happyBirthday();
// Вывести конечные результаты
echo "<pre>Person 1: ", print_r($person1, TRUE), "</pre>";
echo "<pre>Person 2: ", print_r($person2, TRUE), "</pre>";
?>
На этот раз в браузере будет выведена следующая информация.
Person 1: Person Object
(
[_name:Person:private] => Tom
[_job:Person:private] => Button-Pusher
[_age:Person:private] => 34
)
Person 2: Person Object
(
[_name:Person:private] => John
[_job:Person:private] => Lever Puller
[_age:Person:private] => 41
)
Person 1: Person Object
(
[_name:Person:private] => Tom
[_job:Person:private] => Box-Mover
[_age:Person:private] => 35
)
Person 2: Person Object
(
[_name:Person:private] => John
[_job:Person:private] => Lever Puller
[_age:Person:private] => 42
)
Чтобы воплотить в жизнь объектно-ориентированный подход, потребовалось немного потрудиться, но после того, как класс определен, создание и изменение объектов, соответствующих разным лицам, становится сущим пустяком: информацию о лице больше не надо передавать методам или получать от них — каждому методу передается лишь необходимая информация, без которой он не может обойтись.
Возможно, при небольшом программном коде это различие не особенно заметно, но как только приложение начнет расти в объеме, ООП, при правильной реализации, значительно снизит нагрузку на программиста.
Отправитель | Нити |
---|
29 пользователь(ей) активно (16 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 29 далее... |