博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php设计模式之工厂方法模式
阅读量:7021 次
发布时间:2019-06-28

本文共 1306 字,大约阅读时间需要 4 分钟。

php设计模式之工厂方法模式

工厂方法模式

工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。

模式结构

工厂方法模式包含如下角色:

  • Product:抽象产品
  • ConcreteProduct:具体产品
  • Factory:抽象工厂
  • ConcreteFactory:具体工厂

结构图

这里写图片描述

PHP代码实现

1 
$name=$value; 8 } 9 10 public function __get($name){11 return $this->$name;12 }13 abstract public function getResult();14 }15 16 //具体产品17 class OperateAdd extends Operation18 {19 public function getResult(){20 $result=$this->numA+$this->numB;21 return $result;22 }23 }24 class OperateSub extends Operation25 {26 public function getResult(){27 $result=$this->numA-$this->numB;28 return $result;29 }30 }31 32 //抽象工厂33 interface Factory34 {35 public function createOperation();36 }37 38 //具体工厂39 class AddFactory implements Factory40 {41 public function createOperation()42 {43 return new OperateAdd();44 }45 }46 class SubFactory implements Factory47 {48 public function createOperation()49 {50 return new OperateSub();51 }52 }53 $a=new AddFactory();54 $b=$a->createOperation();55 $b->numA=1;56 $b->numB=5;57 $c=$b->getResult();58 var_dump($c);

运行结果

int 6

 

你可能感兴趣的文章
恶搞之手机垃圾信息发送器 手机短信骚扰器
查看>>
mysql replication之binlog-do-db、binlog-ignore-db
查看>>
Date类型和Long类型的相互转换
查看>>
XMPP协议
查看>>
CSS:给 input 中 type="text" 设置CSS样式
查看>>
Softmax函数
查看>>
hdu4462 Scaring the Birds
查看>>
设计中的道理_6
查看>>
MFC——AfxParseURL用法
查看>>
Cocos2d-x3.2 Sprite精灵类的创建与设置
查看>>
Starting MySQL.Manager of pid-file quit without updating file.[FAILED]
查看>>
深入浅出PostgreSQL B-Tree索引结构
查看>>
PostgreSQL 如何高效解决 按任意字段分词检索的问题 - case 1
查看>>
TCP/IP Socket
查看>>
iOS开发进行真机调试
查看>>
Java进程调试(windows)
查看>>
Centos 7部署odoo11.0(未完待续,暂时放弃)
查看>>
Lucene 3.x VS 4.X Performance
查看>>
CSS块级元素和行内元素
查看>>
Linux下安装MySQL(mariadb)
查看>>