php实现简单工厂模式
2014-10-14 17:03
447 查看
简单工厂模式,又称为静态工厂模式,在其工厂类中通过一个公有的静态方法返回每个类的实例。
代码:
//家禽接口
interface fowl
{
public function eat(){};
public function breed(){};
}
//母鸡类
class hen implements fowl
{
public function eat()
{
echo "我是鸡,我吃稻子和虫子!";
}
public function breed()
{
echo "我会生鸡蛋,咯咯蛋!";
}
}
//鸭子类
class duck implements fowl
{
public function eat()
{
echo "我是鸭子,我要吃鱼!";
}
public function breed()
{
echo "我会生鸭蛋,嘎嘎嘎!";
}
}
class nofowlException extends Exception
{
public $msg;
public $errType;
public function __construct($msg='',$errType=0)
{
$this->msg=$msg;
$this->errType=$errType;
}
}
//饲养员
class breeder
{
public static function factory($fowl)
{
switch($fowl)
{
case 'hen':
return new hen();
break;
case 'duck':
return new duck();
break;
default:
throws new nofowlException('对不起我们暂时还没有养这种家禽');
break;
}
}
}
//主程序
$hen=breeder::factory('hen');
$hen->eat();//输出我是鸡,我吃稻子和虫子!"
$hen->breed();//输出我会生鸡蛋,咯咯蛋!
$duck=breeder::factory('duck');
$duck->eat();//我是鸭子,我要吃鱼!
$duck->breed();//我会生鸭蛋,嘎嘎嘎!
$goose->breeder::factory('goose');//输出对不起我们暂时还没有养这种家禽
代码:
//家禽接口
interface fowl
{
public function eat(){};
public function breed(){};
}
//母鸡类
class hen implements fowl
{
public function eat()
{
echo "我是鸡,我吃稻子和虫子!";
}
public function breed()
{
echo "我会生鸡蛋,咯咯蛋!";
}
}
//鸭子类
class duck implements fowl
{
public function eat()
{
echo "我是鸭子,我要吃鱼!";
}
public function breed()
{
echo "我会生鸭蛋,嘎嘎嘎!";
}
}
class nofowlException extends Exception
{
public $msg;
public $errType;
public function __construct($msg='',$errType=0)
{
$this->msg=$msg;
$this->errType=$errType;
}
}
//饲养员
class breeder
{
public static function factory($fowl)
{
switch($fowl)
{
case 'hen':
return new hen();
break;
case 'duck':
return new duck();
break;
default:
throws new nofowlException('对不起我们暂时还没有养这种家禽');
break;
}
}
}
//主程序
$hen=breeder::factory('hen');
$hen->eat();//输出我是鸡,我吃稻子和虫子!"
$hen->breed();//输出我会生鸡蛋,咯咯蛋!
$duck=breeder::factory('duck');
$duck->eat();//我是鸭子,我要吃鱼!
$duck->breed();//我会生鸭蛋,嘎嘎嘎!
$goose->breeder::factory('goose');//输出对不起我们暂时还没有养这种家禽
相关文章推荐
- PHP工厂模式的简单实现
- 简单工厂模式之php实现
- PHP工厂模式简单实现方法示例
- 简单工厂模式及php实现
- vb.net 中通过反射实现简单工厂模式
- 实现简单工厂模式
- 简单工厂模式 c++实现
- C#基础:抽象类和抽象方法实现多态以及简单工厂设计模式的语法
- 设计模式之(简单工厂)(C#实现)(程杰)
- 大话设计模式之C++实现---简单工厂模式
- 工厂模式例子(用面向对象的方法实现简单的计算器)
- php中使用接口实现工厂设计模式的代码
- 1.用C#的泛型实现简单的工厂模式
- 简单工厂模式和工厂模式的实现例子
- 简单工厂模式(C#实现)
- php使用接口实现工厂设计模式
- vb.net 中通过反射实现简单工厂模式
- 追MM与设计模式的JAVA实现-简单工厂方法
- 设计模式之—简单工厂方法(StaticFactory )-Java实现
- php实现工厂模式(转)