简单工厂模式
约 203 字小于 1 分钟
2025-07-08
// 比如,我们有一些类,它们都继承自交通工具类:
interface Vehicle
{
public function drive();
}
class Car implements Vehicle
{
public function drive()
{
echo '汽车靠四个轮子滚动行走。' . PHP_EOL;
}
}
class Ship implements Vehicle
{
public function drive()
{
echo '轮船靠螺旋桨划水前进。'. PHP_EOL;
}
}
class Aircraft implements Vehicle
{
public function drive()
{
echo '飞机靠螺旋桨和机翼的升力飞行。'. PHP_EOL;
}
}
//再创建一个工厂类,专门用作类的创建,:
class VehicleFactory
{
public static function build($className = null)
{
$className = ucfirst($className);
if ($className && class_exists($className)) {
return new $className();
}
return null;
}
}
//工厂类用了一个静态方法来创建其他类,在客户端中就可以这样使用:
VehicleFactory::build('Car')->drive();
VehicleFactory::build('Ship')->drive();
VehicleFactory::build('Aircraft')->drive();
// 省去了每次都要new类的工作。
贡献者
更新日志
2025/7/8 02:36
查看所有更新日志
7d36c
-php于