//-----------抽象产品角色------------
//定义保险产品工厂获取产品
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();
工厂方法模式(factory method模式)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- Simple Factory Pattern(简单工厂模式) GoF中认为简单工厂模式是工厂方法的一个特例。 结构...
- “对象创建”模式 通过“对象创建”模式绕开直接new一个具体的类型,来避免对象创建(new)过程中所导致的紧耦合(...
- 主要角色 具体的产品 具体的创建者 职责 解决创建对象需要大量的代码,客户端不需要知道创建对象细节。 角色关系 产...
- 什么是工厂方法模式?定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子...
- 1. 工厂方法模式简介 工厂方法模式(Factory Method Pattern)是创建型的设计模式,和简单工厂...