日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php编程模式,PHP编程之-设计模式简单实例

發布時間:2025/3/15 php 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php编程模式,PHP编程之-设计模式简单实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【單例模式】

/* ?*?@singleton ?*?*/ abstract?class??SingletonClass{ ????static?private?$obj; ????public?function?init(){} ????static?public?function?getInstance(){} } class?MyInstanceClass?extends??SingletonClass{ ????static?private?$obj; ????public?static?function?getInstance(){ ????????if(!(self::$obj?instanceof?self)){ ????????????self::$obj?=?new?self(); ????????} ????????return?self::$obj; ????} ????public?function?init(){ ????????echo?"1、我是單例模式/n"; ? ????} ????private?function?__construct(){ ????????return?false; ????} ????private?function?__wakeup(){ ????????return?false; ????} } ?? MyInstanceClass::getInstance()->init();

【組合模式】

/* ?*?@composite ?*?*/?? class?XmlClass{ ????private?$nodesArray?=?array(); ????private?$name?=?"我是葉子節點/n"; ????private?$isNode?=?true; ????public?function?__construct(){ ?? ????} ????public?function?acceptNodes($array){ ????????foreach($array?as?$key=>$value){ ????????????array_push($this->nodesArray,$value); ????????} ????????$this->name?=?"我是父節點/n"; ????????$this->isNode?=?false; ????} ????public?function?getNodes(){ ????????if($this->isNode?===?true){ ????????????return?false; ????????}else{ ????????????return?$this->nodesArray; ????????} ????} ????public?function?getName(){ ????????print_r($this->name); ????} ????public?function?fn1(){ ?? ????} ????public?function?printMyself(){ ????????$this->getName(); ????????if($this->isNode?===?false){ ???????????$tempArray?=?$this->getNodes(); ????????????foreach($tempArray?as?$key=>$value){ ????????????????$value->printMyself(); ????????????} ????????} ????} } ? $obj1?=?new?XmlClass(); $obj2?=?new?XmlClass(); $sup_obj?=?new?XmlClass(); $sup_obj->acceptNodes(array($obj1,$obj2)); $sup_obj->printMyself();

【裝飾模式】

/* ?*?@decorator【裝飾模式】 ?*?*/?? class?A{ ????public?$name?=?"JianxunLiu/n"; } interface?item1Interface{ ????public?function?getName(); } class?DecoratorClass?implements?item1Interface{ ????private?$obj; ????public?function?__construct(A?$obj){ ??????$this->obj?=?$obj; ????} ????public?function?getName(){ ????????print_r($this->obj->name); ????} } ?? $obj?=?new?A(); $decoratorObj?=?new?DecoratorClass($obj); $decoratorObj->getName();

【外觀模式】

/* ?*?@Facade【外觀模式】 ?*?*/ $obj?=?new?myFacade(array('name'=>'jianxun','sex'=>'man')); $obj->getName(); $obj->getSex(); ?? class?myFacade{ ????private?$name; ????private?$sex; ????public?function?__construct($array){ ??????$this->name?=?$array['name']; ??????$this->sex?=?$array['sex']; ????} ????public?function?getName(){ ????????print_r($this->name); ????} ????public?function?getSex(){ ????????print_r($this->sex); ????} }

【策略模式】

/* ?*?@strategy ?*?*/?? class?MyClass1{ ????public?function?behaviorFn(){ ????????echo?"我會飛/n"; ????} } ?? class?MyStrategy{ ????private?$obj; ????public?function?__construct(MyClass1?$obj){ ????????$this->obj?=?$obj; ????} ????public?function?behaviorFn(){ ????????$this->obj->behaviorFn(); ????} } ?? $obj?=?new?MyStrategy(new?MyClass1()); $obj->behaviorFn();

【責任鏈模式】

/* ?*?@responsibility? ?*?*/? class?EricOuter{ ????private?$obj; ????public?function?__construct(EricInner?$obj){ ????????$this->obj?=?$obj; ????} ????public?function?say(){ ????????echo?"我會說/n"; ????} ????public?function?__call($name,$args){ ????????$this->obj->$name(); ????} } class?EricInner{ ????public?function?run(){ ????????echo?"我會跑/n"; ????} } $obj?=?new?EricOuter(new?EricInner()); $obj->say(); $obj->run();

【觀察者模式】

/* ?*?@observer【觀察者模式】 ?*?*/?? class?Observer{ ????private?$eventArray?=?array(); ????public?function?addEvent(Event?$obj){ ????????array_push($this->eventArray,$obj); ????} ????public?function?trigger(){ ????????foreach($this->eventArray?as?$key=>$value){ ????????????$value->handler(); ????????} ????} } abstract?class?Event{ ????abstract?public?function?handler(); }? class?Event1?extends?Event{ ????public?function?handler(){ ????????echo?"event1/n"; ????} } class?Event2?extends?Event{ ????public?function?handler(){ ????????echo?"event2/n"; ????} }?? class?Event3?extends?Event{ ????public?function?handler(){ ????????echo?"event3/n"; ????} }?? ?? $obj?=?new?Observer(); $event1?=?new?Event1(); $event2?=?new?Event2(); $event3?=?new?Event3(); $obj->addEvent($event1); $obj->addEvent($event2); $obj->addEvent($event3); $obj->trigger();

【命令行模式】

/* ?*?@?command ?*?*/? $obj?=?new?CommandObj(); $obj->say("Right"); ?? class?CommandObj{ ????public?function?say($str){ ????????echo?sprintf("hello?Mr.?%s",$str); ????} }

總結

以上是生活随笔為你收集整理的php编程模式,PHP编程之-设计模式简单实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。