设计模式 - 简单工厂模式

简介

模式定义

简单工厂模式(Simple Factory):根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类,用来创建其他类的实例,被创建的实例通常都具有共同的父类。

模式特点

简单工厂模式包含三个角色:

  • Factory:工厂,负责实现创建所有实例
  • Product:抽象产品,是所创建的所有对象的父类,负责描述所有实例所共有的公共接口
  • ConcreteProduct:具体产品,是创建目标,所有创建的对象都充当这个角色的某个具体类的实例。

这里写图片描述

优缺点

  • 只需要调用工厂方法并传入正确参数,即可得到对象。
  • 增加新产品时,需要修改工厂类的判断逻辑,违背了开闭原则。

一般在确定需要工厂创建的对象数量较少且相对稳定时,才会使用简单工厂模式。

PHP 代码示例


<?php


abstract class Product
{
    abstract public function f1();
}

class ProductA extends Product
{
    public function f1()
    {
        echo "this is ProductA";
    }
}

class ProductB extends Product
{
    public function f1()
    {
        echo "this is ProductB";
    }
}

class Factory
{
    public static function getInstance($product)
    {
        if ($product == "A") {
            return new ProductA();
        } elseif ($product == "B") {
            return new ProductB();
        }
    }
}

$obj = Factory::getInstance("A");
$obj->f1();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值