给大家介绍2个php常用的设计模式,工厂模式和单列模式。
1. 工厂模式
工厂模式提供了一个在实时状态下实例化对象的机制。
<?php class creditCardProcessor { public static function factory($provider) { switch ($provider) { case 'Verisign': include "Verisign.php"; break; case 'PayPal': include "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 = mysgl 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); // 失败
(责任编辑:admin) |