各位朋友大家好!
本日给大家带来的是 php根本里面的工厂设计模式!
在面向工具编程中, 最常日的方法是一个new操作符产生一个工具实例,new操作符便是用来布局工具实例的。但是在一些情形下, new操作符直接天生工具会带来一些问题。举例来说, 许多类型工具的创造须要一系列的步骤: 你可能须要打算或取得工具的初始设置; 选择天生哪个子工具实例; 或在天生你须要的工具之前必须师长西席成一些赞助功能的工具。 在这些情形,新工具的建立便是一个 “过程”,不仅是一个操作,像一部大机器中的一个齿轮传动。

这里那就须要利用到一个 工厂设计模式的PHP类!
由于源码比较长,须要的朋友可以私聊
废话不多说,上源码!
<?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();
?>