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');
?>


  运行结果如下图所示:


   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


你可能感兴趣的:(设计模式,c,mysql,PHP,db2)