<?php function __autoload($class) { if (file_exists($class . ".php")) { include $class . ".php"; } else { include "Size/{$class}.php"; } } function out($in) { echo $in . "</br>"; } $mocha = new Mocha(); $mocha->setSize(new Small()); out($mocha->cost()); $mocha = new Chocolate($mocha); out($mocha->cost()); $mocha = new MilkDecorator($mocha); out($mocha->cost());
// Вкусный пирог с орешками, шоколадом и корицей $dessert = new Cinnamon(new Chocolate(new Nuts(new Pie()))); echo 'Десерт: ' . $dessert->getDescription(); echo '<br>'; echo 'Цена: ' . $dessert->cost() . ' USD'; echo '<br>'; /* Вывод: Десерт: Пирог, Орешки, Шоколад, Коррица Цена: 9.4 USD */ // Вкусный пирог с двойным шоколадом $dessert = new Chocolate(new Chocolate(new Pie())); echo 'Десерт: ' . $dessert->getDescription(); echo '<br>'; echo 'Цена: ' . $dessert->cost() . ' USD'; echo '<br>'; /* Вывод: Десерт: Пирог, Шоколад, Шоколад Цена: 9.6 USD */ // Мороженное с тройными орешками и двойным шоколадом $dessert = new Nuts(new Nuts(new Nuts(new Chocolate(new Chocolate(new IceCream()))))); echo 'Десерт: ' . $dessert->getDescription(); echo '<br>'; echo 'Цена: ' . $dessert->cost() . ' USD'; echo '<br>'; /* Вывод: Десерт: Мороженное, Шоколад, Шоколад, Орешки, Орешки, Орешки