coding code
change world

[创建型模式]简单工厂模式

工厂模式:顾名思义就是可用生产出物品的工厂这么一个模式,对应到计算机也很好理解,就是一个工厂类,这个工厂类可用生成其他各种各样的类,而这个工厂类就提供这样一种功能

好处:所有的模式都是为了能让代码重用性更高,重构起来更方便而存在,而简单工厂模式省去了在内部有大量的new class的操作

<?php

interface Vehicle
{
    public function drive();
}

class Car implements Vehicle()
{
    public function drive()
    {
        echo '我是一辆小汽车,载人少但是速度很快';
    }
}

class Bus implements Vehicle()
{
    public function drive()
    {
        echo '我是一辆公交车,载人多但是速度慢';
    }
}

class AirPlane implements Vehicle()
{
    public function drive()
    {
        echo '我是一辆飞机,我飞的很快,而且载人更多';
    }
}

class VehicleFactory
{
    public static function build($class_name = null)
    {
        $class_name = ucfirst($class_name);
        if ($class_name !== null && class_exists($class_name)) {
            return new $class_name();
        }
        return null;
    }
}

// 工厂类用了一个静态方法来创建其他类,在客户端中就可以这样使用:

VehicleFactory::build('car')->drive();
VehicleFactory::build('bus')->drive();
VehicleFactory::build('airplane')->drive();
赞(0) 打赏
未经允许不得转载:卢云华个人日志 » [创建型模式]简单工厂模式
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏