加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2021-05-24 10:04:03 所属栏目:PHP教程 来源:互联网
导读:1、工厂模式工厂模式是一种专门用来创建其它对象的类(称为工厂类),根据传递参数的不同,来创建不同类的对象。我们可以使用工厂类创建对象,而不是直接使用 new。 工厂类中至少有一个公共的静态方法(称为工厂方法),静态方法接受一个参数,根据这个参数
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 操作都会消耗系统和内存的资源。

(编辑:云计算网_泰州站长网)

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

    热点阅读