php简单工厂模式
工厂类中有一个创建对象的方法,根据传入参数的不同来生成不同的对象
class Operation extends Model
{ private $numberA;
private $numberB; public function getResult(){ $result = 0; return $result; } public function getNumberA(){ return $this->numberA;
}
public function setNumberA($numberA){ $this->numberA = $numberA; } public function getNumberB(){ return $this->numberB;
}
public function setNumberB($numberB){ $this->numberB = $numberB; } }
class OperationAdd extends Operation
{ public function getResult()
{
$result = 0 ; $result = $this->numberA + $this->numberB; return $result; } }
class OperationSub extends Operation
{ public function getResult()
{
$result = 0; $result = $this->numberA - $this->numberB; return $result;
} }
class OperationMul extends Operation
{
public function getResult(){ $result = 0; $result = $this->numberA * $this->numberB; return $result; } }
class OperationDiv extends Operation
{
public function getResult(){
$result = 0;
if ($this->numberA == 0){
throw new HttpException("除数不能为0");
}
$result = $this->numberA / $this->numberB;
return $result;
}
}
class Factory extends Model
{ private $type; public function __construct($type,array $config = [])
{
$this->type = $type;
parent::__construct($config);
} public function createOperate(){
switch ($this->type){
case "+":
return new OperationAdd();
break;
case "-":
return new OperationSub();
break;
case "*":
return new OperationMul();
break;
case "/":
return new OperationDiv();
break;
}
} }
$factory = new Factory("+");
$operation = $factory->createOperate();
$operation->numberA = 2;
$operation->numberB = 1;
$result = $operation->getResult();
echo $result;
php简单工厂模式的更多相关文章
- PHP设计模式(一)简单工厂模式 (Simple Factory For PHP)
最近天气变化无常,身为程序猿的寡人!~终究难耐天气的挑战,病倒了,果然,程序猿还需多保养自己的身体,有句话这么说:一生只有两件事能报复你:不够努力的辜负和过度消耗身体的后患.话不多说,开始吧. 一.什 ...
- C#设计模式之简单工厂模式(Simple Factory)
1. 概述 简单工厂模式就是将一个类的实例化交给一个静态工厂来执行. 2. 使用频率 中 3. 模式结构 3.1 机构图 3.2 模式中的角色 Product:抽象类,把具体产品类公共的代码进行抽象和 ...
- 设计模式 — 简单工厂模式(Simple Factory)
定义:定义一个工厂类,它可以根据参数的不同返回不同类型的实例,被创建的实例通常有公共的父类. 模式类型:创建型模型 Factory(工厂角色):即工厂类,负责实现创建所有产品实例的内部逻辑:工厂类可以 ...
- C#设计模式(2)——简单工厂模式
一.概念:简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创 ...
- 设计模式之简单工厂模式Simple Factory(四创建型)
工厂模式简介. 工厂模式专门负责将大量有共同接口的类实例化 工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类. 工厂模式有三种形态: 1.简单工厂模式Simple Factory ...
- 学习设计模式第二十七 - GoF之外简单工厂模式
示例代码来自<深入浅出设计模式>和<大话设计模式> 概述 简单工厂模式又被称为静态工厂模式,属于类的创建型模式.其实质是由一个工厂类根据传入的参量,动态决定应该创建出哪一个产品 ...
- Objective-C 工厂模式(上) -- 简单工厂模式
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂 ...
- C#设计模式系列:简单工厂模式(Simple Factory)
1. 简单工厂模式简介 1.1 定义 简单工厂模式定义一个Factory类,可以根据参数的不同返回不同类的实例,被创建的实例通常有共同的父类. 简单工厂模式只需要一个Factory类. 简单工厂模式又 ...
- 《JS设计模式笔记》 2,简单工厂模式
<script type="text/javascript"> //简单工厂模式 //定义:由一个方法来决定到底要创建哪个类的实例,而这些实例经常拥有相同的接口.其实例 ...
- Net设计模式实例之简单工厂模式(Simple Factory Pattern)
一.简单工厂模式简介(Bref Introduction) 简单工厂模式(Simple Factory Pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类, ...
随机推荐
- Android API Guides---Host-based Card Emulation
Host-based Card Emulation 很多提供NFC功能的Android手机已经支持NFC卡模拟.在大多数情况下.该卡是由在该装置的单独芯片仿真,称为安全元件. 无线运营商提供了非常 ...
- LogManager
public class LogManager { // Fields public static bool Debugstate; // Methods public static void Log ...
- 【Python】八大排序算法的比较
排序是数据处理比较核心的操作,八大排序算法分别是:直接插入排序.希尔排序.简单选择排序.堆排序.冒泡排序.快速排序.归并排序.基数排序 以下是排序图解: 直接插入排序 思想 直接插入排序是一种最简单的 ...
- Python中函数参数传递问题【转】
1. Python passes everything the same way, but calling it "by value" or "by reference& ...
- Linux下配置两个或多个Tomcat启动
Linux下配置两个或多个Tomcat启动 (2012-08-14 11:59:31) 转载▼ 标签: 杂谈 分类: linux_tomcat 步骤如下: (1)修改/etc/profile文件.添加 ...
- 网络方面的常用命令 & 常用端口介绍
在网络方面我们常常会用到如下命令: (1)ping命令:我们常常用来判断2台或2台以上的机器间是否网络连通. ping 192.168.1.88 -t 如果想看任何命令的参数是什么意思,我们只需要:命 ...
- [1-5] 把时间当做朋友(李笑来)Chapter 5 【小心所谓成功学】 摘录
有一个事实非常简单,却令人难以接受.这世界上所有的资源并非平均分布在每一个人的身上,能够比较接近地表示这种分布情况的数学曲线叫做“正态分布曲线”(Normal Distribution Curve) ...
- top未加order by,结果出错
1.查询第21-30条记录 select top 10 * from sys_Module where ID >(select max(ID) from (select top 20 * fro ...
- 使用dynamic类型来优化反射
什么是dynamic类型?微软给出的官方文档中这样解释:在通过 dynamic 类型实现的操作中,该类型的作用是绕过编译时类型检查. 改为在运行时解析这些操作. dynamic 类型简化了对 COM ...
- mysql被动模式下的主主配置
mysql 架构最简单用得也最多的的是主从,主主等,主从有个切换的问题,从库不可写,在主库一定的情况下,切换挺麻烦,这里可以用主主模式. 但是主主也有个问题,就是两边同时写有可能冲突,主键冲突,虽然可 ...