1.工厂模式 主要作用是降低耦合度。 <div class="codetitle"><a style="CURSOR: pointer" data="49317" class="copybut" id="copybut49317" onclick="doCopy('code49317')"> 代码如下:<div class="codebody" id="code49317"> abstract class Operation{ abstract public function getValue($num1,$num2); public function getAttr(){ return 1; } } class Add extends Operation{ public function getValue($num1,$num2){ return $num1+$num2; } } class Sub extends Operation{ public function getValue($num1,$num2){ return $num1-$num2; } } class Factory{ public static function CreateObj($operation){ switch ($operation){ case '+': return new Add(); case '-': return new Sub(); } } } $Op=Factory::CreateObj('-'); echo $Op->getValue(3,6); 用在真正开发中一般当做数据库选择类。 2单例模式 单例是因为一个就足够了,多了浪费。比如邮局里的电话簿只有一本,有需要的人拿来看,没有必要每个人要查的时候工作人员就拿一本出来,看完了再回收。 <div class="codetitle"><a style="CURSOR: pointer" data="41031" class="copybut" id="copybut41031" onclick="doCopy('code41031')"> 代码如下:<div class="codebody" id="code41031"> class Mysql{ public static $conn; public static function getInstance(){ if (!self::$conn){ new self(); return self::$conn; }else { return self::$conn; } } private function construct(){ self::$conn= "mysql_connect:";// mysql_connect('','','') } public function clone() { trigger_error("Only one connection"); } } echo Mysql::getInstance(); echo Mysql::getInstance(); 实际中用作数据库连接类和工厂模式一起使用,根据参数调用单例模式,可以提高资源使用效率。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|