php 常用的两个设计模式

  [b]1. 工厂模式[/b]

  工厂模式提供了一个在实时状态下实例化对象的机制。
<?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');
?>


  运行结果如下图所示:
[img]http://www.xuekaifa.com/img/2010/1213/1d69ee39.jpg[/img]

  [b]2. 单例模式[/b]

  单例模式在确保只有一个实例运行时使用,也可以用来防止类通过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); // 失败



转载地址:[url]http://www.xuekaifa.com/article/20100626/000067.html[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值