歡迎您光臨本站 註冊首頁

PHP設計模式入門之狀態模式原理與實現方法分析

←手機掃碼閱讀     zmcjlove @ 2020-05-04 , reply:0

本文實例講述了PHP設計模式入門之狀態模式原理與實現方法。分享給大家供大家參考,具體如下:
想必大家都用過自動售賣的自動飲料機吧,塞入硬幣或紙幣,選擇想要的飲料,飲料就會在機器的下方滾出。大家有沒有相關如果用程序去寫一個飲料機要怎麼樣實現呢?
首先我們可以分享一下這部飲料機有幾種狀態
一、沒有錢的狀態
二、有錢的狀態
三、售出的狀態
四、銷售一空的狀態
好吧,知道了這些狀態之後我們開始寫代碼了!
JuiceMachine.php
index.php
運行的結果是:
you just insert a coin
you clicked, we are giving you a bottle of juice...
now you get you juice
opps, runing out of juice
到目前為止我們的程序運行良好,沒有出現什麼問題,但是從這些多重的if判斷中你是否嗅到了壞代碼的味道呢?有一天問題終於出現了,老闆希望當用戶點擊按鈕時有10%的概率拿到兩瓶飲料,我們需要為飲料機多加一個狀態,這時去修改代碼就成為了一種災難,而且很可能會影響到之前的代碼,帶來新的bug,看看狀態模式如何幫助我們度過難關吧!
狀態模式的官方定義是:狀態模式允許對象在內部狀態改變是改變它的行為,對象看起來好像是修改了它的類
用uml類圖表示如下:
在我們這個項目中的實際類圖如下:
具體實現代碼:
State.php
NomoneyState.php
HasmoneyState.php
SoldoutState.php
SoldState.php
WinnerState.php
JuiceMachine.php
index.php


[zmcjlove ] PHP設計模式入門之狀態模式原理與實現方法分析已經有370次圍觀

http://coctec.com/docs/php/show-post-232802.html