freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

精通php設(shè)計(jì)模式各個(gè)擊破案例測試源碼(編輯修改稿)

2025-02-09 16:32 本頁面
 

【文章內(nèi)容簡介】 1 20110602 *//** * 產(chǎn)品(運(yùn)算符運(yùn)算結(jié)果)抽象角色類 */abstract class Abstract_Operation{ /** * 定義私有變量 * * @var $numa */ private $numa。 /** * 定義私有變量 * * @var $numb */ private $numb。 public function Getnuma(){ return $thisnuma。 } public function Setnuma($num){ $thisnuma=$num。 } public function Getnumb(){ return $thisnumb。 } public function Setnumb($num){ $thisnumb=$num。 } /** * 抽象方法GetResult 返回結(jié)果 * */ abstract protected function GetResult()。 }/** * 加法子類 * */class OperationAdd extends Abstract_Operation{ public function GetResult() { $result = $thisGetnuma() + $thisGetnumb()。 return $result。 }}/** * 減法子類 * */class OperationSub extends Abstract_Operation{ public function GetResult() { $result = $thisGetnuma() $thisGetnumb()。 return $result。 }}/** * 抽象工廠角色類 * */abstract class abstract_factory{ abstract public static function GreateClass()。}/** * 加法工廠子類 * */class FactoryAdd extends abstract_factory{ public static function GreateClass() { return new OperationAdd()。 }}/** * 減法工廠子類 * */class FactorySub extends abstract_factory{ public static function GreateClass() { return new OperationSub()。 }}/** * 運(yùn)算主函數(shù) * * @param int $firstnum * @param int $secondnum * @param int $operation */function Calculate($firstnum,$secondnum,$operation){ //靜態(tài)調(diào)用 switch ($operation) { case 1: $oper = FactoryAdd::GreateClass()。 break。 case 2: $oper = FactorySub::GreateClass()。 break。 default: echo err!。 die()。 break。 } $operSetnuma($firstnum)。 $operSetnumb($secondnum)。 $operGetResult()。 return $operGetResult()。} $firstnum = 1。$secondnum = 1。$operation = 1。echo 計(jì)算結(jié)果:.Calculate($firstnum,$secondnum,$operation)。PHP 設(shè)計(jì)模式六之代理設(shè)計(jì)模式 【超級(jí)變種:超級(jí)動(dòng)態(tài)代理】一般動(dòng)態(tài)代理產(chǎn)品 b 或者 產(chǎn)品c 需要滿足代理的接口定義函數(shù)然后就可以動(dòng)態(tài)引入產(chǎn)品 b 或者 產(chǎn)品c, 調(diào)用對(duì)應(yīng)產(chǎn)品的方法超級(jí)動(dòng)態(tài)代理:一切都是動(dòng)態(tài)的,不受拘束 ?php/** * @author Chen Wei Han csq3@ * @copyright Chen Wei Han * @link * @package demo * @version $Id: 1 20110601 */class a{ public function a1() { return a1。 } public function a2() { return a2。 }}class b{ public function b1() { return b1。 } public function b2() { return b2。 }}class Proxy{ public function __construct($class) { $this_class=$class。 } public function __call($name,$arguments) { eval(\$result=\$this_class.$name.()。)。 return $result。 }}$a = new a。$b = new b。$proxy = new Proxy($b)。echo $proxyb1()。echo $proxyb2()。$proxy = new Proxy($a)。echo $proxya1()。echo $proxya2()。?PHP 設(shè)計(jì)模式七之原型設(shè)計(jì)模式?php/** * 計(jì)算器簡單 原型設(shè)計(jì)模式 也叫克隆(復(fù)制)模式【深復(fù)制,淺復(fù)制】 * 此處案例:把工廠方法設(shè)計(jì)模式使用原型設(shè)計(jì)模式來實(shí)現(xiàn)方便理解。為了避免創(chuàng)建一個(gè)與產(chǎn)品類層次平等的工廠類層次時(shí),就可以使用原型設(shè)計(jì)模式。 * * 定義:Prototype模式允許一個(gè)對(duì)象再創(chuàng)建另外一個(gè)可定制的對(duì)象,根本無需知道任何如何創(chuàng)建的細(xì)節(jié),用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并且通過拷貝這些原型創(chuàng)建新的對(duì)象. [ 當(dāng)要實(shí)例化的類是在運(yùn)行時(shí)刻指定時(shí),例如,類是通過動(dòng)態(tài)裝載;或者 為了避免創(chuàng)建一個(gè)與產(chǎn)品類層次平行的工廠類層次時(shí); 或者 當(dāng)一個(gè)類的實(shí)例只能有幾個(gè)不同狀態(tài)組合中的一種時(shí)。 建立相應(yīng)數(shù)目的原型并克隆它們可能比每次用合適的狀態(tài)手工實(shí)例化該類更方便一些。 詳細(xì)文章看: ] * @author Chen Wei Han * @copyright Chen Wei Han * @link * @package demo * @version $Id: 1 20110607 *//** * 抽象原型角色 * */interface Prototype { public function copy()。}/** * 算法管理類 */class OperationManager{ private $arrs=array()。 public function set($key,$value) { $thisarrs[$key] = $value。 } public function get($key) { return $thisarrs[$key]。 } }/** * 具體的原型對(duì)象 算法類 * */class Operation implements Prototype{ private $_operation。 private $str。 public function __construct($operation) { $this_operation = $operation。 } public function copy() { return clone $this。//淺拷貝 } public function GetResult($numa,$numb) { $thisstr = $numa.$this_operation.$numb。 eval(\$result = .$thisstr.。)。 return $result。 } }$OM = new OperationManager。$numa=1。$numb=2。$oper=39。加39。 $OMset($oper,new Operation(39。+39。))。 $object1 = $OMget($oper)copy()。echo $object1GetResult($numa,$numb)。 $numa=5。$numb=2。$oper=39。減39。$OMset($oper,new Operation(39。39。))。$object2 = $OMget($oper)copy()。echo $object2GetResult($numa,$numb)。 /* 注意:我這里的計(jì)算器例子只是為了對(duì)應(yīng)設(shè)計(jì)模式一的工廠模式計(jì)算器方便讀者理解,不是很好的例子。 * 大家可以能注意到了,這里的具體的原型對(duì)象 算法類內(nèi)部有不同的,就是加變減了,我這里巧妙使用eval來解決了,但如果業(yè)務(wù)邏輯太多 * 這就很麻煩,所以要使用原型模式一定的子類僅僅在初始化的參數(shù)對(duì)象類別上有所不同,內(nèi)部處理必須一樣的才適用。 * 等于就是工廠方法模式無限子類,而且子類內(nèi)部處理基本一樣的情況,原型模式最適合不過了,因?yàn)闊o限子類,工廠方法模式使用不合理了 */PHP 設(shè)計(jì)模式八之觀察者設(shè)計(jì)模式?php/** * 訂閱周刊 觀察者設(shè)計(jì)模式【這采用PHP的SPL內(nèi)置接口來實(shí)現(xiàn),也可以自己定義接口】 * 定義:對(duì)象間的一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都得到通知并被自動(dòng)更新 * @anthor Chen Wei Han csq3@ * @copyright Chen Wei Han * @link * @package demo * @version $Id: 1 20110613 *//** * 被觀察者具體角色類,繼承SPL的接口 */class ConcreteSubject implements SplSubject{ private $_obeservers。 private $value。 /** * * 觀察者對(duì)象角色容器數(shù)組 */ public function __construct() { $this_observers = array()。 } /** * 增加觀察者對(duì)象角色 * @param Observer $observer * @return arr */ public function attach(SplObserver $observer) { //不分類觀察者 return array_push($this_observers, $observer)。 } /* public function attache(SplObserver $observer,$type) { //分類觀察者 使用二維關(guān)聯(lián)數(shù)組,是否允許覆蓋已添加的觀察者可以添加判斷 return $this_observers[$type][]=$observer。 } */ /** * 刪除一個(gè)注冊(cè)了的觀察者對(duì)象角色 * @
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1