zoukankan      html  css  js  c++  java
  • 设计模式

    简介

    模式定义

    简单工厂模式(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();
  • 相关阅读:
    2879. [NOI2012]美食节【费用流】
    luogu P1012 拼数
    luogu cover
    luogu cogs . [NOIP2003] 传染病控制 WA(1/2)
    luogu P1340 兽径管理 WA
    luogu P1342 请柬
    HTML学习笔记二
    HTML学习笔记一
    arr.sort()
    编写函数实现随机产生指定范围的整数的功能
  • 原文地址:https://www.cnblogs.com/kika/p/10851577.html
Copyright © 2011-2022 走看看