-
Notifications
You must be signed in to change notification settings - Fork 699
/
Copy pathtest.php
46 lines (37 loc) · 1.07 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
<?php
/**
* 行为型模式
*
* php中介者模式
* 理解:就是不同的对象之间通信,互相之间不直接调用,而是通过一个中间对象(中介者)
* 使用场景:对象之间大量的互相依赖
* 下面实现一个房屋中介
*
*
* @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 mediator\Tenant;
use mediator\Landlord;
use mediator\HouseMediator;
try {
// 初始化一个租客
$tenant = new Tenant('小明');
// 小明直接找小梅租房
$landlord = new Landlord('小梅');
echo $landlord->doSomthing($tenant);
// 小明通过房屋中介租房
// 初始化一个房屋中介
$mediator = new HouseMediator();
// 租房
$mediator->rentHouse($tenant);
} catch (\Exception $e) {
echo 'error:' . $e->getMessage();
}