工厂模式

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

<?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();

结果可得:
饼状图

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。