工厂方法模式

Posted shiyongzhe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂方法模式相关的知识,希望对你有一定的参考价值。

工厂方法模式和简单工厂类似 不过客服了简单工厂违反开闭原则的缺点,又保持了封装对象创建过程的优点。

 

定义 :一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法是一个类的实例化延迟到子类。

interface

<?php
namespace localinterfaces;

interface Factory
{
public function createAction();
}


这个声明工厂方法

实例A1
<?php

namespace localinterfaces;
use localinterfacesFactory;
use localinterfacesA1;
class Action1 implements Factory
{
public function createAction()
{
return new A1();
}
}



实例A2
<?php

namespace localinterfaces;
use localinterfacesFactory;
use localinterfacesA2;
class Action2 implements Factory
{
public function createAction()
{
return new A2();
}
}


客户端代码
public function actionF1()
{
$a1 = new Action2();
$a1->createAction();
}

写的很笼统 权当给自己做一个简易的记录 近期会抽空写一个关于工厂方法的详细运用
























































以上是关于工厂方法模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式-简单工厂工厂方法模式抽象工厂模式详解

工厂方法模式

设计模式-工厂方法模式(Go实现)

C++工厂模式(简单工厂工厂方法抽象工厂)

C++工厂模式(简单工厂工厂方法抽象工厂)

设计模式---工厂模式