您的位置:首页 > 编程语言 > PHP开发

php使用接口实现工厂设计模式

2012-06-17 14:27 1006 查看
php实现工厂设计模式,使用接口实现,表面上接口没有什么用,因为php是类型自动转换的。实现上使用接口可以约束类的定义,从而实现一致的访问。

接口在php只能起到约束类的定义作用,虽不像c#/java那么直观,但基于oop的封装要求,使用接口可以提高程序的可扩展性,如实现代理设计模式。

<?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();

?>


运行结果:

I'm man.
I'm Woman.
I'm Woman.
I'm man.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: