美文网首页
静态工厂

静态工厂

作者: Leonzai | 来源:发表于2018-04-08 16:25 被阅读3次

与简单工厂比较而言,优先使用 简单工厂模式

<?php
namespace DesignPatterns\Creational\StaticFactory;

final class StaticFactory
{
    public static function factory(string $type): FormatterInterface
    {
        if ($type == 'number') {
            return new FormatNumber();
        }

        if ($type == 'string') {
            return new FormatString();
        }

        throw new \InvalidArgumentException('Unknown format given');
    }
}
<?php
namespace DesignPatterns\Creational\StaticFactory;

interface FormatterInterface
{
}
<?php
namespace DesignPatterns\Creational\StaticFactory;

class FormatString implements FormatterInterface
{
}
<?php
namespace DesignPatterns\Creational\StaticFactory;

class FormatNumber implements FormatterInterface
{
}
<?php

namespace DesignPatterns\Creational\StaticFactory\Tests;

use DesignPatterns\Creational\StaticFactory\StaticFactory;
use PHPUnit\Framework\TestCase;

class StaticFactoryTest extends TestCase
{
    public function testCanCreateNumberFormatter()
    {
        $this->assertInstanceOf(
            'DesignPatterns\Creational\StaticFactory\FormatNumber',
            StaticFactory::factory('number')
        );
    }

    public function testCanCreateStringFormatter()
    {
        $this->assertInstanceOf(
            'DesignPatterns\Creational\StaticFactory\FormatString',
            StaticFactory::factory('string')
        );
    }

    public function testException()
    {
        StaticFactory::factory('object');
    }
}

相关文章

  • 设计模式

    设计模式 工厂模式生成bean 工厂模式分为静态工厂和实例工厂 静态工厂: 实例工厂

  • 工厂模式

    工厂模式 工厂模式分为 简单(静态)工厂 工厂方法 抽象工厂 下面分别介绍这几总工厂模式 简单工厂 (静态工厂) ...

  • 条目1:考虑使用静态工厂方法而不是构造函数

    静态工厂方法的优势: 1:静态工厂方法有名称 2:静态工厂方法不用每次都返回一个新的对象 3:静态工厂方法可以返回...

  • 静态工厂

    与简单工厂比较而言,优先使用 简单工厂模式!

  • 静态工厂

    statement:本篇内容只是建立在我目前经验的基础之上,必然有不完善甚至是不正确的地方,请谨慎阅读,如果能指出...

  • Java创建和销毁对象

    考虑用静态工厂方法代替构造器 静态工厂方法可以通过静态获取类的一个实例,而不需要通过构造器; 使用静态工厂方法的优...

  • Spring-4静态工厂方法和动态工程方法配置bean

    静态工厂方法 动态工厂方法

  • 【设计模式】——工厂模式_简单工厂模式

    要点 简单工厂模式也叫静态工厂模式(方法里面都为静态)。就是工厂类一般使用静态方法,通过接收的参数的不同来返回不同...

  • 静态工厂方法鸡肋吗?

    对比静态工厂 静态工厂方法很容易让人想到设计模式的静态工厂,也叫简单工厂,作者说两者不同,我认为这两者仅是从概念上...

  • Java静态工厂方法

    相比构造器,静态工厂方法提供实例的优势: 静态工厂方法有名字 使用静态工厂方法比直接使用等效的构造方法更易阅读理解...

网友评论

      本文标题:静态工厂

      本文链接:https://www.haomeiwen.com/subject/qwcmhftx.html