huangfen2002 发表于 2017-3-28 14:41:23

php 常用的两个设计模式

  1. 工厂模式
  工厂模式提供了一个在实时状态下实例化对象的机制。
<?php
class creditCardProcessor
{
public static function factory($provider)
{
switch ($provider)
{
case 'Verisign':
//include "Verisign.php";
echo 'Verisign.php';
break;
case 'PayPal':
//include "Paypal.php";
echo 'Paypal.php';
break;
default:
exit("Invalid CC Provider");
}
return new $provider;
}
}
$cc = creditCardProcessor::factory('PayPal');
?>

  运行结果如下图所示:
http://www.xuekaifa.com/img/2010/1213/1d69ee39.jpg
  2. 单例模式
  单例模式在确保只有一个实例运行时使用,也可以用来防止类通过clone来复制。
class dbMysgl
{
private static $conn;
private function __construct()
{
$this->conn = mysql_connect(host, login, pass);
}
public static function singleton()
{
if(!self::$conn)
{
$c = __CLASS__;
self::$conn = new $c;
}
return self::$conn;
}
public function __clone()
{
trigger_error("Only one connection may exist");
}
}
$db = new dbMysgl();      // 失败
$db = dbMysgl::singleton(); // 使用的正确方法
$db2 = clone($db);          // 失败

转载地址:http://www.xuekaifa.com/article/20100626/000067.html
页: [1]
查看完整版本: php 常用的两个设计模式