1. 云栖社区>
  2. PHP教程>
  3. 正文

php设计模式-简单工厂模式

作者:用户 来源:互联网 时间:2017-11-30 13:02:14

php设计模式简单模式工厂

php设计模式-简单工厂模式 - 摘要: 本文讲的是php设计模式-简单工厂模式, ①抽象基类:类中定义抽象一些方法,用以在子类中实现 ②继承自抽象基类的子类:实现基类中的抽象方法 工厂类:用以实例化所有相对应的子类 <?php/* *定义个抽象的类,让子类去继承实现它 */abstract class Op

  • ①抽象基类:类中定义抽象一些方法,用以在子类中实现
  • ②继承自抽象基类的子类:实现基类中的抽象方法
  • 工厂类:用以实例化所有相对应的子类

<?php/* *定义个抽象的类,让子类去继承实现它 */abstract class Operation{	//抽象方法不能包含函数体	abstract public function getValue($num1,$num2);//子类必须实现该函数功能}/* *加法 */class OperationAdd extends Operation{	public function getValue($num1,$num2){		return $num1 + $num2;	}}/** * 减法 */class OperationSub extends Operation{    public function getValue($num1,$num2){    	return $num1 - $num2;    }}/** * 乘法类 */class OperationMul extends Operation {     public function getValue($num1,$num2){         return $num1*$num2;     } }/** * 除法 */class OperationDiv extends Operation{	public function getValue($num1,$num2){		try{			if($num2 == 0){				throw new Exception("除数不能为0", 1);			}else{				return $num1/$num2;			}		}catch(Exception $e){			echo "错误信息".$e->getMessage();		}	}}/**     * 求余类(remainder)     *     */    class OperationRem extends Operation {        public function getValue($num1,$num2){            return $num1%$num12;        }    }// 现在还有一个问题未解决,就是如何让程序根据用户输入的操作符实例化相应的对象呢?// 解决办法:使用一个单独的类来实现实例化的过程,这个类就是工厂/** * 工程类,主要用来创建对象 * 功能:根据输入的运算符号,工厂就能实例化出合适的对象 * */class Factory{	public static function createObj($operate){		switch($operate){			case '+':				return new OperationAdd();				break;			case '-':				return new OperationSub();				break;						case '*':				return new OperationMul();				break;						case '/':				return new OperationDiv();				break;		}	}}$test=Factory::createObj('/');$result = $test->getValue(23,0);var_dump($result);


以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 设计模式 , 简单 , 模式 工厂 ,以便于您获取更多的相关知识。

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

云服务器9.9元/月,大学必备