simple--factory--abstract
<?php
/* 示例2: */
//简单工厂模式
/*
* 定义运算类
*/
abstract class Operation { protected $_NumberA = 0;
protected $_NumberB = 0;
protected $_Result = 0; public function __construct($A,$B){
$this->_NumberA = $A;
$this->_NumberB = $B;
} public function setNumber($A,$B){
$this->_NumberA = $A;
$this->_NumberB = $B;
} /* protected function clearResult(){
$this->_Result = 0;
} */ public function clearResult(){
return $this->_Result = 0;
} //抽象方法无方法体
abstract protected function getResult(); } //继承一个抽象类的时候,子类必须实现抽象类中的所有抽象方法;
//另外,这些方法的可见性 必须和抽象类中一样(或者更为宽松)
class OperationAdd extends Operation { public function getResult(){
$this->_Result=$this->_NumberA + $this->_NumberB;
return $this->_Result;
} } class OperationSub extends Operation { public function getResult(){
$this->_Result=$this->_NumberA - $this->_NumberB;
return $this->_Result;
} } class OperationMul extends Operation { public function getResult(){
$this->_Result=$this->_NumberA * $this->_NumberB;
return $this->_Result;
} } class OperationDiv extends Operation { public function getResult(){
$this->_Result=$this->_NumberA / $this->_NumberB;
return $this->_Result;
} } class OperationFactory { //创建保存实例的静态成员变量
private static $obj; //创建访问实例的公共的静态方法
public static function CreateOperation($type,$A,$B){
switch($type){
case '+':
self::$obj = new OperationAdd($A,$B);
break;
case '-':
self::$obj = new OperationSub($A,$B);
break;
case '*':
self::$obj = new OperationMul($A,$B);
break;
case '/':
self::$obj = new OperationDiv($A,$B);
break;
}
return self::$obj;
} } /*
$obj = OperationFactory::CreateOperation('+');
$obj->setNumber(4,4);
*/
$obj = OperationFactory::CreateOperation('*',5,6);
echo $obj->getResult(); //
echo "<br/>";
echo $obj->clearResult(); //
echo '<br>';
/* echo $obj->_Result; */
simple--factory--abstract的更多相关文章
- Simple Factory vs. Factory Method vs. Abstract Factory【简单工厂,工厂方法以及抽象工厂的比较】
		
I ran into a question on stackoverflow the other day that sort of shocked me. It was a piece of code ...
 - simple factory, factory method, abstract factory
		
simple factory good:1 devide implementation and initialization2 use config file can make system more ...
 - "Simple Factory" vs "Factory Method" vs "Abstract Factory" vs "Reflect"
		
ref: http://www.cnblogs.com/zhangchenliang/p/3700820.html 1. "Simple Factory" package torv ...
 - PHP设计模式(一)简单工厂模式 (Simple Factory For PHP)
		
最近天气变化无常,身为程序猿的寡人!~终究难耐天气的挑战,病倒了,果然,程序猿还需多保养自己的身体,有句话这么说:一生只有两件事能报复你:不够努力的辜负和过度消耗身体的后患.话不多说,开始吧. 一.什 ...
 - 设计模式之简单工厂模式Simple Factory(四创建型)
		
工厂模式简介. 工厂模式专门负责将大量有共同接口的类实例化 工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类. 工厂模式有三种形态: 1.简单工厂模式Simple Factory ...
 - Net设计模式实例之简单工厂模式(Simple Factory Pattern)
		
一.简单工厂模式简介(Bref Introduction) 简单工厂模式(Simple Factory Pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类, ...
 - Java设计模式(1)——创建型模式之简单工厂模式(Simple Factory)
		
设计模式系列参考: http://www.cnblogs.com/Coda/p/4279688.html 一.概述 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高 ...
 - 简单工厂(Simple Factory)模式
		
工厂模式专门负责将大量有共同接口的类实例化.工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类.工厂模式有以下几种形态: 简单工厂(Simple Factory)模式 工厂方法(F ...
 - 大白话简单工厂模式 (Simple Factory Pattern)
		
大白话简单工厂模式 (Simple Factory Pattern) 从买车经历说起 毕业两年,码农张小两口无法忍受挤公交,凌晨起床抢火车票的痛苦,遂计划买车.逛了多家4S店,最终定下日产某车型的轿车 ...
 - Java设计模式:Simple Factory(简单工厂)模式
		
概念定义 简单工厂(Simple Factory)模式,又称静态工厂方法(Static Factory Method)模式,即定义一个工厂类,根据传入的不同参数创建不同的产品实例,这些实例对象具有共同 ...
 
随机推荐
- slam command tool
			
cd imu_ws source devel/setup.bash ls -l /dev |grep ttyUSB sudo chmod /dev/ttyUSB0 rosrun imu_pb imu ...
 - 解密和解压浏览器上加密的js文件
			
F12 -> 进入Sources -> 找到任意一个加密的js文件,如图 点击最下方的 {} 即可解压
 - CentOs上搭建nginx
			
目录 CentOs上搭建nginx 1. 在root环境下安装nginx 1.1 常用工具安装 1.2 关闭iptables规则 1.3 关闭SELinux 1.4 安装C/C++环境和PCRE库 1 ...
 - hdu 5371 Hotaru's problem【manacher】
			
题目链接: http://acm.hdu.edu.cn/showproblem.php? pid=5371 题意: 给出一个长度为n的串,要求找出一条最长连续子串.这个子串要满足:1:能够平均分成三段 ...
 - webpack  使用配置
			
注意:webpack 2.0版本之后有所区别 一.插件篇 1. 自动补全css3前缀 autoprefixer 官方是这样说的:Parse CSS and add vendor prefixes to ...
 - Pentaho 免费版本下载地址列表
			
Pentaho CE(Community Edition) 免费版本下载地址列表 http://sourceforge.net/projects/pentaho/files/Pentaho 插件名称 ...
 - 基于日志处理的ElasticSearch的学(gen)习(feng)
			
最近学了点solr,然后有听说了ElasticSearch,就想着也学一下ElasticSearch,然后看见了ElasticSearch用于日志的收集的分析,这里就来学习一下. 百度一下Elasti ...
 - Nginx 变量漫谈
			
转自:http://blog.sina.com.cn/openrestyNginx 的配置文件使用的就是一门微型的编程语言,许多真实世界里的 Nginx 配置文件其实就是一个一个的小程序.当然,是不是 ...
 - ubuntu 16.04安装visual studio code 提示libnss3版本低:NSS >= 3.26 is required
			
Linux Ubuntu 1604安装VS CODE之后,执行./code报错误: [3781:0914/160851.489979:FATAL:nss_util.cc(632)] NSS_Versi ...
 - zookeeper应用场景之配置文件同步
			
p=2628">http://www.firefoxbug.net/?p=2628