所谓工厂模式和生产有关。生产什么呢?生产出来的是一个实例对象。通过什么设备生产?通过一个工厂类生产simpleFactoty。怎么生产呢?工厂类调用自身静态方法来生产对象实例static function woman.工厂类静态方法必须返回一个对象.

简单的工厂模式

<?php

class Factory // 创建一个基本的工厂类
{
    static public function fac($id) // 创建一个返回实例对象的静态方法
    {
        switch ($id) {
            case 'car':
                return new car();
                break;
            case 'bus':
                return new bus();
                break;
            case 'bike':
                return new bike;
                break;
        }
    }
}

interface transport
{
    public function go();
}

class car implements transport
{
    public function go()
    {
        echo '开车好玩';
    }
}

class bus implements transport
{
    public function go()
    {
        echo '公交车便宜';
    }
}

class bike implements transport
{
    public function go()
    {
        echo '自行车又累又慢';
    }
}

$obj = Factory::fac('car');
$obj->go();

$obj = Factory::fac('bike');
$obj->go();
01-23 22:01