工厂方法模式(factory method模式)

//-----------抽象产品角色------------

//定义保险产品工厂获取产品
interface InsuranceProduct
{
    public function getProductList();
}

//-----------具体产品角色------------
//众安保险
class ZhongAn implements InsuranceProduct {

    public function getProductList()
    {
        return "ZhongAn Insurance ProductList";
    }
} 

//小雨伞保险
class XiaoYuSan implements InsuranceProduct {
    
    public function getProductList()
    {
        return "XiaoYuSan Insurance ProductList";
    }
} 

//齐欣保险
class QiXin implements InsuranceProduct {

    public function getProductList()
    {
        return "QiXin Insurance ProductList";
    }
} 

//-----------抽象工厂类------------
interface Factory
{
    public function create();
}


//-----------继承工厂类, 用于实例化产品------------
class ZhongAnFactory implements Factory 
{
    public function create()
    {
        return new ZhongAn();
    }
}

class XiaoYuSanFactory implements Factory 
{
    public function create()
    {
        return new XiaoYuSan();
    }
}

class QiXinFactory implements Factory 
{
    public function create()
    {
        return new QiXin();
    }
}

//-----------具体操作类------------
class Client
{
    public function test()
    {
        $qiXinResult = new QiXinFactory();
        echo $qiXinResult->create()->getProductList();

        $xiaoYuSanResult = new XiaoYuSanFactory();
        echo $xiaoYuSanResult->create()->getProductList();
    }
}

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

推荐阅读更多精彩内容