php中使用接口实现工厂设计模式的代码
更新时间:2012年06月17日 19:52:45 作者:
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.
相关文章
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
这篇文章主要介绍了PHP开发之归档格式phar文件概念与用法,结合实例形式较为详细的分析了归档格式phar文件创建,使用,解包还原提取等概念及操作实现方法,需要的朋友可以参考下2017-11-11php中echo、print和print_r的区别点及用法总结
在本篇文章里小编给大家整理的是一篇关于php中echo、print和print_r的区别点及用法总结内容,有需要的朋友们可以学习下。2021-12-12
最新评论