-
Notifications
You must be signed in to change notification settings - Fork 699
/
Copy pathtest.php
72 lines (63 loc) · 1.51 KB
/
test.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
<?php
/**
* 创建型模式
*
* php建造者模式
* 简单对象构建复杂对象
* 基本组件不变,但是组件之间的组合方式善变
*
* 下面我们来构建手机和mp3
*
* // 手机简单由以下构成
* 手机 => 名称,硬件, 软件
* // 硬件又由以下硬件构成
* 硬件 => 屏幕,cpu, 内存, 储存, 摄像头
* // 软件又由以下构成
* 软件 => android, ubuntu
*
* * // mp3简单由以下构成
* 手机 => 名称,硬件, 软件
* // 硬件又由以下硬件构成
* 硬件 => cpu, 内存, 储存
* // 软件又由以下构成
* 软件 => mp3 os
*
* builder 导演类
*
* @author TIGERB <https://github.com/TIGERB>
* @example 运行 php test.php
*/
// 注册自加载
spl_autoload_register('autoload');
function autoload($class)
{
require dirname($_SERVER['SCRIPT_FILENAME']) . '//..//' . str_replace('\\', '/', $class) . '.php';
}
/************************************* test *************************************/
use builder\ProductBuilder;
$builder = new ProductBuilder();
// 生产一款mp3
$builder->getMp3([
'name' => '某族MP3',
'hardware' => [
'cpu' => 1,
'ram' => 1,
'storage' => 128,
],
'software' => ['os' => 'mp3 os']
]);
echo "\n";
echo "----------------\n";
echo "\n";
// 生产一款手机
$builder->getPhone([
'name' => '某米8s',
'hardware' => [
'screen' => '5.8',
'camera' => '2600w',
'cpu' => 4,
'ram' => 8,
'storage' => 128,
],
'software' => ['os' => 'android 6.0']
]);