class
EnglishSpeaker
implements
Speaker{
public
function
assignSpeaker(){
return
new
English();
}
}
//具体工厂 2
class
ChineseSpeaker
implements
Speaker{
public
function
assignSpeaker(){
return
new
Chinese();
}
}
//
抽象产品
interface
Hello{
function
say_hello();
}
//具体产品 1
class
English
implements
Hello{
public
function
say_hello(){
echo
"Hello!";
}
}
//具体产品 2
class
Chinese
implements
Hello{
public
function
say_hello(){
echo
"你好";
}
}
使用:
代码如下:
if
(!
empty
(
$_GET
['t'])){
switch
(
$_GET
['t']){
case
1:
$temp
=
new
EnglishSpeaker();
break
;
case
2:
$temp
=
new
ChineseSpeaker();
break
;
}
$man
=
$temp
->assignSpeaker();
$man
->say_hello();
}
三.抽象工厂模式(Abstract Factory)产品族;每个实体工厂负责一个产品族(1,2...)的产品, 而