加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2023-02-11 12:44:06 所属栏目:PHP教程 来源:
导读:  工厂模式 工厂模式是一种专门用来创建其它对象的类(称为“工厂类”),根据传递参数的不同,来创建不同类的对象。我们可以使用工厂类创建对象,而不是直接使用 new。

  工厂类中至少有一个公共
  工厂模式 工厂模式是一种专门用来创建其它对象的类(称为“工厂类”),根据传递参数的不同,来创建不同类的对象。我们可以使用工厂类创建对象,而不是直接使用 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 操作都会消耗系统和内存的资源。
 

(编辑:云计算网_宿迁站长网)

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