首页 > 开发 > PHP > 正文

PHP最常用的2种设计模式:工厂模式和单例模式

2024-05-04 21:53:02
字体:大 中 小
来源:转载
供稿:网友

1.工厂模式

主要作用是降低耦合度。

  1. abstract class Operation{ 
  2.     abstract public  function getValue($num1,$num2); 
  3.     public  function getAttr(){ 
  4.         return 1; 
  5.     } 
  6. } 
  7. class Add extends Operation{ 
  8.     public function getValue($num1, $num2){         
  9.         return $num1+$num2; 
  10.     } 
  11. } 
  12.  
  13. class Sub extends Operation{ 
  14.     public function getValue($num1, $num2){ 
  15.         return $num1-$num2; 
  16.     } 
  17. } 
  18.  
  19. class Factory{ 
  20.     public static function CreateObj($operation){ 
  21.          
  22.         switch ($operation){ 
  23.             case '+': return new Add(); 
  24.             case '-': return new Sub(); 
  25.         } 
  26.          
  27.     } 
  28. } 
  29.  
  30. $Op=Factory::CreateObj('-'); 
  31. echo $Op->getValue(3, 6); 
用在真正开发中一般当做数据库选择类。
2单例模式
单例是因为一个就足够了,多了浪费。比如邮局里的电话簿只有一本,有需要的人拿来看,没有必要每个人要查的时候工作人员就拿一本出来,看完了再回收。
  1. class Mysql{ 
  2.     public static $conn; 
  3.     public static function getInstance(){ 
  4.         if (!self::$conn){ 
  5.             new self(); 
  6.             return self::$conn; 
  7.         }else { 
  8.             return self::$conn; 
  9.         } 
  10.          
  11.     } 
  12.     private  function __construct(){     
  13.         self::$conn=  "mysql_connect:";//    mysql_connect('','','')     
  14.     } 
  15.      
  16.     public function __clone() 
  17.     { 
  18.         trigger_error("Only one connection"); 
  19.     } 
  20. } 
  21.  
  22.  echo Mysql::getInstance(); 
  23.  echo Mysql::getInstance(); 
实际中用作数据库连接类和工厂模式一起使用,根据参数调用单例模式,可以提高资源使用效率。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表