-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfactory.php
More file actions
64 lines (51 loc) · 1.05 KB
/
Copy pathfactory.php
File metadata and controls
64 lines (51 loc) · 1.05 KB
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
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/3/1
* Time: 13:32
*/
interface db{
function conn();
}
interface factory{
function createDB();
}
class dbmysql implements db{
public function conn(){
echo '连接上了mysql...';
}
}
class dbsqlite implements db{
public function conn(){
echo '连接上了sqlite...';
}
}
class mysqlFactory implements Factory{
function createDB(){
return new dbmysql();
}
}
class sqliteFactory implements Factory{
function createDB(){
return new dbsqlite();
}
}
//如果想加Oracle类,直接实现接口就行,实现了不允许修改,可以扩展
class OracleFactory implements Factory{
function createDB(){
return new dboracle();
}
}
class dboracle implements db{
public function conn(){
echo '连接上了oracle...';
}
}
//======客户端开始========
$fact = new mysqlFactory();
$mysql = $fact->createDB();
$mysql->conn();
$fact = new OracleFactory();
$oracle = $fact->createDB();
$oracle->conn();