/
index.php
79 lines (74 loc) · 2.11 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
use Decorator\ {
ComponentDecorator,
Dessert,
IceCream,
MilkShake,
Pie,
Nuts,
Chocolate,
Cinnamon
};
require_once "Dessert.php";
require_once "ComponentDecorator.php";
require_once "IceCream.php";
require_once "MilkShake.php";
require_once "Pie.php";
require_once "Nuts.php";
require_once "Chocolate.php";
require_once "Cinnamon.php";
// Обычный молочный коктейль
$dessert = new MilkShake();
echo 'Десерт: ' . $dessert->getDescription();
echo '<br>';
echo 'Цена: ' . $dessert->cost() . ' USD';
echo '<br>';
/*
Вывод:
Десерт: Молочный коктейль
Цена: 3 USD
*/
// Молочный коктейль с корицей
$dessert = new Cinnamon(new MilkShake());
echo 'Десерт: ' . $dessert->getDescription();
echo '<br>';
echo 'Цена: ' . $dessert->cost() . ' USD';
echo '<br>';
/*
Вывод:
Десерт: Молочный коктейль, Коррица
Цена: 3.1 USD
*/
// Вкусный пирог с орешками, шоколадом и корицей
$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>';
/*
Вывод:
Десерт: Мороженное, Шоколад, Шоколад, Орешки, Орешки, Орешки
Цена: 10.6 USD
*/