<?php
interface Color {
public function applyColor();
}
class Red implements Color{
public function applyColor() {
return "red";
}
}
class Blue implements Color{
public function applyColor(){
return "blue";
}
}
abstract class Shape{
protected $color;
public function __construct(Color $color)
{
$this->color = $color;
}
abstract public function draw();
}
class Circle extends Shape {
public function draw(){
return "圆形填充了:". $this->color->applyColor();
}
}
$red = new Red();
$circle = new Circle($red);