
иллюстрировать
1. Объедините два изначально несвязанных класса, а затем используйте методы и атрибуты этих двух классов для вывода нового результата.
2. Структура разделена на абстрактные классы, уточненные абстрактные классы, классы реализации, классы конкретной реализации и клиентский код.
Пример
/**
* Цвет абстрактного класса * Класс Цвет
*/
абстрактный класс Цвет
{
/**
* @return смешанный
*/
абстрактная публичная функция run();
}
/**
* Черный * Класс Черный
*/
класс Черный расширяет цвет
{
публичная функция run()
{
// ЗАДАЧА: реализовать метод run().
вернуть «черный»;
}
}
/**
*Белый*Класс Белый
*/
класс Белый расширяет Цвет
{
публичная функция run()
{
// ЗАДАЧА: реализовать метод run().
вернуть «белый»;
}
}
/**
* Красный * Класс Красный
*/
класс Red расширяет цвет
{
публичная функция run()
{
// ЗАДАЧА: реализовать метод run().
вернуть «красный»;
}
}
/**
* Абстрактный класс Shape * Класс Shape
*/
абстрактный класс Форма
{
/**
* Цвет * @var Цвет
*/
защищенный $color;
/**
* Конструктор фигур.
* @param Цвет $color
*/
публичная функция __construct(Цвет $color)
{
$this->color = $color;
}
/**
* @return смешанный
*/
абстрактная операция публичной функции();
}
/**
* Раунд * Классовый раунд
*/
класс Round расширяет форму
{
/**
* @return mix|void
*/
операция публичной функции()
{
// TODO: реализовать метод Operation().
echo $this->color->run() 'circle<br>';
}
}
/**
* Прямоугольник * Класс Прямоугольник
*/
класс Rectangle расширяет форму
{
/**
* @return mix|void
*/
операция публичной функции()
{
// TODO: реализовать метод Operation().
echo $this->color->run() 'Rectangle<br>';
}
}
/**
* Квадрат * Квадрат класса
*/
класс Square расширяет форму
{
/**
* @return mix|void
*/
операция публичной функции()
{
// TODO: реализовать метод Operation().
echo $this->color->run() 'square<br>';
}
}
// Код клиента // Белый круглый $whiteRound = new Round(new White());
$whiteRound->операция();
// Черный квадрат $blackSquare = new Square(new Black());
$blackSquare->операция();
// Красный прямоугольник $redRectangle = new Rectangle(new Red());
$redRectangle->operation();
//Результат выполнения: белый круг, черный квадрат, красный прямоугольникВышеупомянутое представляет собой введение в режим моста PHP. Надеюсь, оно будет полезно всем.