php中使用接口实现工厂设计模式的代码
程序员文章站
2022-11-27 15:12:08
接口在php只能起到约束类的定义作用,虽不像c#/java那么直观,但基于oop的封装要求,使用接口可以提高程序的可扩展性,如实现代理设计模式。 复制代码 代码如下: &l...
接口在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.
上一篇: 大猩猩在逃