抽象工厂模式
约 210 字小于 1 分钟
2025-07-08
interface CarVehicle
{
public function drive();
}
class BaomaCar implements CarVehicle
{
public function drive()
{
echo '[宝马] 汽车靠四个轮子滚动行走。' . PHP_EOL;
}
}
class BenchiCar implements CarVehicle
{
public function drive()
{
echo '[奔驰] 汽车靠四个轮子滚动行走。' . PHP_EOL;
}
}
interface ShipVehicle
{
public function drive();
}
class BaomaShip implements ShipVehicle
{
public function drive()
{
echo '[宝马] 轮船靠螺旋桨划水前进。'. PHP_EOL;
}
}
class BenchiShip implements ShipVehicle
{
public function drive()
{
echo '[奔驰] 轮船靠螺旋桨划水前进。'. PHP_EOL;
}
}
// 工厂
interface Factory
{
public static function runCar();
public static function runShip();
}
//宝马厂子
class BaomaFactory implements Factory
{
public static function runCar()
{
return new BaomaCar();
}
public static function runShip()
{
return new BaomaShip();
}
// other...
}
//奔驰厂子
class BenchiFactory implements Factory
{
public static function runCar()
{
return new BenchiCar();
}
public static function runShip()
{
return new BenchiShip();
}
// other...
}
// 需要知道每个工厂的分别实现
BaomaFactory::runCar()->drive();
BaomaFactory::runShip()->drive();
BenchiFactory::runCar()->drive();
BenchiFactory::runShip()->drive();
贡献者
更新日志
2025/7/8 02:36
查看所有更新日志
7d36c
-php于