加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP设计模式中的单例模式和工厂模式

发布时间:2021-05-23 06:42:50 所属栏目:编程 来源:互联网
导读:1、工场模式 工场模式是一种专门用来建设其余工具的类(称为工场类),按照转达参数的差异,来建设差异类的工具。我们可以行使工场类建设工具,而不是直接行使 n
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 操纵城市耗损体系和内存的资源。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读