PHP设计模式中的单例模式和工厂模式
1、工场模式
工场模式是一种专门用来建设其余工具的类(称为“工场类”),按照转达参数的差异,来建设差异类的工具。我们可以行使工场类建设工具,而不是直接行使 new。 工场类中至少有一个民众的静态要领(称为“工场要领”),静态要领接管一个参数,按照这个参数来建设差异类的工具。 【示例】界说加、减、乘、除四个类,并通过工场类挪用它们。
<?php // 加法类 class Add { public function getValue($num1, $num2){ return $num1 + $num2; } }
// 减法类 class Sub { public function getValue($num1, $num2){ return $num1 - $num2; } }
// 乘法类 class Mul { public function getValue($num1, $num2){ return $num1 * $num2; } }
// 除法类 class Div { public function getValue($num1, $num2){ try { if ($num2==0){ throw new Exception("除数不能为0"); }else { return $num1/$num2; } }catch (Exception $e){ echo "错误信息:".$e->getMessage(); } } }
// 工程类,首要用来建设工具 // 成果:按照输入的运算标记,工场就能实例化出吻合的工具 class Factory { public static function createObj($operate){ switch ($operate){ case '+': return new Add(); break; case '-': return new Sub(); break; case '*': return new Mul(); break; case '/': return new Div(); break; } } } $test = Factory::createObj('/'); $result = $test->getValue(23,3); echo $result; ?> 运行功效如下:7.6666666666667 2、单例模式 单例模式也叫票据模式,是一种常用的软件计划模式。 在应用这个模式时,可以确保一个类只能建设一个工具,这么做可以极大节减内存空间,有利于我们和谐体系的整体举动。 行使单例模式建设的类(“单例类”)不能再其余类中直接实例化,只能被其自身实例化。它不会建设实例副本,而是会向单例类内部存储的实例返回一个引用。 单例模式一个首要应用场所就是应用措施与数据库打交道的场景,在一个应用中会存在大量的数据库操纵,针对数据库句柄毗连数据库的举动,行使单例模式可以停止大量的 new 操纵,由于每一次 new 操纵城市耗损体系和内存的资源。(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |