工厂模式

2018-12-25  本文已影响0人  macarl

工厂方法:构建创建者类的继承等级

<?php

//表格接口
interface chart
{
    public function display();
}

// 折线类
class LineChart implements chart
{

    public function display()
    {
        echo "折线图";
    }
}

//饼状类
class PieChart implements chart
{
    public function display()
    {
        echo "饼状图";
    }

}

//工厂
class cf
{
    public static function getchart($type)
    {


        switch ($type) {
            case 'pie': {
                return new PieChart();
            }

            case'Line': {
                return new LineChart();
            }
            default: {
                return null;
            }
        }

    }

}
//使用
$chart = cf::getchart('pie');
$chart->display();

结果可得:
饼状图

解决了 当代码关注于抽象类型时如何创建对象实例的问题

上一篇 下一篇

猜你喜欢

热点阅读