background image

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...)的产品, 而