<?php
// 表示鼠标,所有鼠标都应该实现此接口
interface IMouse
{
// 获取厂商的名称
public function GetFirmName();
}
// 惠普品牌的鼠标
class HPMouse implements IMouse
{
// 获取鼠标厂商的名字(也就是惠普)
public function GetFirmName()
{
echo "惠普\n";
}
}
// 微软品牌的鼠标
class MicroMouse implements IMouse
{
public function GetFirmName()
{
//获取鼠标厂商的名字(也就是微软)
/********** Begin **********/
echo "微软\n";
/********** End **********/
}
}
// A品牌的鼠标
class AMouse implements IMouse
{
public function GetFirmName()
{
//获取鼠标厂商的名字(也就是A)
/********** Begin **********/
echo "A\n";
/********** End **********/
}
}
class NMouse implements IMouse{
public function GetFirmName()
{
echo "无此厂商";
}
}
// 鼠标工厂
class MouseFactory
{
//根据传入的厂商名称实例化鼠标
static function GetMouse(string $firmName) : IMouse
{
if($firmName == '惠普')
{
return new HPMouse();
}
/********** Begin **********/
else if($firmName == '微软'){
return new MicroMouse();
}
else if($firmName == 'A'){
return new AMouse();
}
else{
return new NMouse;
}
/********** End **********/
}
}
PHP语言设计模式之工厂模式
最新推荐文章于 2023-06-16 18:07:48 发布