色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

常用設(shè)計模式之狀態(tài)模式及其PHP實現(xiàn)

瀏覽:6日期:2022-09-13 09:37:14

狀態(tài)模式是一種行為型模式,它允許一個對象在其內(nèi)部狀態(tài)改變時改變它的行為。對象看起來似乎修改了它的類,狀態(tài)模式變化的位置在于對象的狀態(tài)。

主要角色抽象狀態(tài)(State)角色:定義一個接口,用以封裝環(huán)境對象的一個特定的狀態(tài)所對應(yīng)的行為具體狀態(tài)(ConcreteState)角色:每一個具體狀態(tài)類都實現(xiàn)了環(huán)境(Context)的一個狀態(tài)所對應(yīng)的行為環(huán)境(Context)角色:定義客戶端所感興趣的接口,并且保留一個具體狀態(tài)類的實例。這個具體狀態(tài)類的實例給出此環(huán)境對象的現(xiàn)有狀態(tài)適用性一個對象的行為取決于它的狀態(tài),并且它必須在運行時刻根據(jù)狀態(tài)改變它的行為一個操作中含有龐大的多分支的條件語句,且這些分支依賴于該對象的狀態(tài)。這個狀態(tài)通常用一個或多個枚舉常量表示。通常,有多個操作包含這一相同的條件結(jié)構(gòu)。State模式模式將每一個條件分支放入一個獨立的類中。這使得你可以要所對象自身的情況將對象的狀態(tài)作為一個對象,這一對象可以不依賴于其他對象而獨立變化類圖

常用設(shè)計模式之狀態(tài)模式及其PHP實現(xiàn)

實例

<?phpinterface State { // 抽象狀態(tài)角色 public function handle(Context $context); // 方法示例}class ConcreteStateA implements State { // 具體狀態(tài)角色A private static $_instance = null; private function __construct() {} public static function getInstance() { // 靜態(tài)工廠方法,返還此類的唯一實例if (is_null(self::$_instance)) { self::$_instance = new ConcreteStateA();}return self::$_instance; } public function handle(Context $context) {$context->setState(ConcreteStateB::getInstance()); } }class ConcreteStateB implements State { // 具體狀態(tài)角色B private static $_instance = null; private function __construct() {} public static function getInstance() {if (is_null(self::$_instance)) { self::$_instance = new ConcreteStateB();}return self::$_instance; } public function handle(Context $context) {$context->setState(ConcreteStateA::getInstance()); }}class Context { // 環(huán)境角色 private $_state; public function __construct() { // 默認為stateA$this->_state = ConcreteStateA::getInstance(); } public function setState(State $state) {$this->_state = $state; } public function request() {$this->_state->handle($this); }}// client$context = new Context();$context->request();$context->request();$context->request();$context->request();?>優(yōu)缺點

優(yōu)點

它將與特定狀態(tài)相關(guān)的行為局部化它使得狀態(tài)轉(zhuǎn)換顯示化State對象可被共享
標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 亚洲黄色在线视频 | 色久在线| 日日摸人人看97人人澡 | 午夜日本一区二区三区 | 欧美亚洲精品在线 | 欧美一区不卡二区不卡三区 | 亚洲国产成人久久笫一页 | 久草中文在线 | 成人伊人 | 狠狠色狠狠色综合久久第一次 | 八戒午夜精品视频在线观看 | 九九在线精品 | 国产在线精品一区二区三区不卡 | 手机看片精品高清国产日韩 | 亚洲国产精品久久久天堂 | 久9视频这里只有精品 | 国产自产在线 | 久草热视频 | 国产精品久久免费视频 | 国产女人在线视频 | 日本黄网站高清色大全 | 亚洲国产三级 | 91精品91久久久久久 | 国产原创一区二区 | 日本国产欧美色综合 | 国产精品一久久香蕉国产线看 | 国产日韩亚洲不卡高清在线观看 | www.久操| 欧美成人午夜在线全部免费 | 国产日产精品_国产精品毛片 | 国产亚洲欧美一区 | 欧美成人精品高清在线播放 | 中国老妇另类xxxx | 成人无遮挡毛片免费看 | 国产精品18久久久久网站 | 奇米影视7777久久精品 | 日韩精品无码一区二区三区 | 亚洲精品国产成人7777 | 久久福利资源网站免费看 | 在线精品一区二区三区 | 免费国产a国产片高清不卡 免费国产不卡午夜福在线 免费国产不卡午夜福在线观看 |