<?php
// 表示鼠标,所有鼠标都应该实现此类
interface IMouse
{
// 获取厂商的名称
public function GetFirmName();
}
// 抽象出鼠标工厂的接口
interface IMouseFactory
{
// 返回的类型必须实现IMouse接口
public function GetMouse() : IMouse;
}
//惠普品牌的鼠标
class HPMouse implements IMouse
{
// 获取鼠标厂商的名字(也就是惠普)
public function GetFirmName()
{
echo "惠普\n";
}
}
// 微软品牌的鼠标
class MicroMouse implements IMouse
{
// 获取鼠标厂商的名字(也就是微软)
public function GetFirmName()
{
echo "微软\n";
}
}
//A品牌的鼠标
class AMouse implements IMouse
{
// 获取鼠标厂商的名字(也就是A)
public function GetFirmName()
{
echo "A\n";
}
}
class HPFactory implements IMouseFactory
{
// 返回的类型必须实现IMouse接口
public function GetMouse(): IMouse
{
return new HPMouse();
}
}
/********** Begin **********/
//必须继承自 IMouseFactory
class MicroFactory implements IMouseFactory
{
public function GetMouse(): IMouse
{
return new MicroMouse();
}
}
/********** End **********/
/********** Begin **********/
//必须继承自 IMouseFactory
class AFactory implements IMouseFactory
{
public function GetMouse(): IMouse
{
return new AMouse();
}
}
/********** End **********/
PHP语言设计模式之工厂模式
最新推荐文章于 2023-06-16 18:07:48 发布