Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- abstract class AbstractCar {
- public abstract function getPrice();
- public abstract function getManufacturer();
- };
- class Car extends AbstractCar {
- private $price = 16000;
- private $manufacturer = 'Acme Autos';
- public function getPrice() { return $this->price; }
- public function getManufacturer() { return $this->manufacturer; }
- };
- class CarDecorator extends AbstractCar {
- private $target;
- function __construct( Car $target ) { $this->target = $target; }
- public function getPrice() { return $target->getPrice(); }
- public function getManufacturer() { return $target->getManufacturer(); }
- };
- class NavigationSystem extends CarDecorator {
- public function getPrice() { return parent::getPrice()+1000; }
- };
- $car = new Car();
- $car = new NavigationSystem( $car );
- //$car = new LeatherSeats( $car );
- echo $car->getPrice();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement