<?php |
//人类接口 |
interface IHuman |
{ |
|
function GetName(); |
|
} |
|
//男人类,实现人类接口 |
class ManClass implements IHuman |
{ |
//获取姓名方法 |
public function GetName() |
{ |
return "I'm man." . "<br>" ; |
|
} |
|
} |
|
//女人类,实现人类接口 |
class WomanClass implements IHuman |
{ |
//获取姓名方法 |
public function GetName() |
{ |
return "I'm Woman." . "<br>" ; |
|
} |
|
} |
|
//类工厂,根据需要生产不同实例对象返回 |
class ManFactory |
{ |
//根据参数获取实例对象 |
public function GetIHuman( $IHuman = "man" ) |
{ |
if ( $IHuman == "woman" ) |
{ |
return new WomanClass(); |
} |
else if ( $IHuman == "man" ) |
{ |
return new ManClass(); |
} |
else |
{ |
return null; |
} |
|
} |
//直接获取woman类 |
public function GetWoman() |
{ |
return new WomanClass(); |
//return new ManClass(); |
} |
//直接获取man类 |
public function GetMan() |
{ |
|
return new ManClass(); |
} |
} |
|
$ManFactory = new ManFactory(); |
|
$ManClass = $ManFactory ->GetIHuman(); |
|
echo $ManClass ->GetName(); |
|
$IHuman = $ManFactory ->GetIHuman( "woman" ); |
|
echo $IHuman ->GetName(); |
|
$Woman = $ManFactory ->GetWoman(); |
|
echo $Woman ->GetName(); |
|
$Man = $ManFactory ->GetMan(); |
|
echo $Man ->GetName(); |
|
?> |