摘要:這是一個設計模式系列本書所有案例均來自設計模式中文版地址歡迎大家策略模式定義了算法族,分別封裝起來,讓他們之間可以相互調用,此模式讓算法的變化獨立與調用算法的客戶端。
策略模式這是一個設計模式系列,本書所有案例均來自「Head-First設計模式(中文版)」, Github地址, 歡迎大家 watch, star
設計謎題定義了算法族,分別封裝起來,讓他們之間可以相互調用,此模式讓算法的變化獨立與調用算法的客戶端。
一個冒險游戲,有多個游戲角色可以使用不同的武器,游戲中角色可以自由的切換武器,每個角色一次只能使用一樣武器.
類圖設計如下
抽象的武器行為接口
interface WeaponBehavior { /** * 設置具體使用什么樣的武器 * */ public function useWeapon(); }
武器的具體實現類
class KnifeBehavior implements WeaponBehavior { public function useWeapon() { //使用小刀 return 1; } } class SwordBehavior implements WeaponBehavior { public function useWeapon() { //使用大保健 return 1024; } } //...
各種游戲角色均繼承自Character超類。
abstract public class Character { protected $weapon; public function setWeapon(WeaponBehavior $weapon) { $this->weapon = $weapon; } /** * 獲取角色戰斗力 */ public function fightPower() { return $this->weapon->useWeapon() } }
角色的具體實現.
class King extends Character { public function __construct() { //國王使用斧頭 $this->setWeapon(new SwordBehavior); } } class Queen extends Character { public function __construct() { //王后使用匕首 $this->setWeapon(new KnifeBehavior); } }等等...
我們的設計原則是針對接口編程,但是我們仍然在角色的構造函數里制造一個具體的武器行為類.
戰斗因為這是我們的第一個設計模式,后面我們將用其他模式更正這一點.
(new King)->fightPower(); //1024; (new Queen)->fightPower(); //1;
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26169.html
摘要:這是一個設計模式系列本書所有案例均來自設計模式中文版地址歡迎大家觀察者模式定義了對象之間的一對多依賴當一個對象改變狀態時它的所有依賴者都將會收到通知并自動更新觀察者模式形容圖設計謎題有一個氣象觀察站我們希望建立一個應用有三種布告板用于顯示 這是一個設計模式系列,本書所有案例均來自「Head-First設計模式(中文版)」, Github地址, 歡迎大家 watch, star 觀察者模...
摘要:學習編程的本最佳書籍這些書涵蓋了各個領域,包括核心基礎知識,集合框架,多線程和并發,內部和性能調優,設計模式等。擅長解釋錯誤及錯誤的原因以及如何解決簡而言之,這是學習中并發和多線程的最佳書籍之一。 showImg(https://segmentfault.com/img/remote/1460000018913016); 來源 | 愿碼(ChainDesk.CN)內容編輯 愿碼Slo...
摘要:模塊鏈的共識配置,該配置會寫入創世塊。主要指責是記錄和更新本地累計工作量最高的鏈,并維護鏈上數據的索引。消息使用序列化。協議是節點之間用來處理廣播和轉發新的交易。 by Nervos CKB Team 在 2017 年底,我們感到心里的一些想法,包括分層的網絡以及一個作為共同知識庫(Common Knowledge Base)的區塊鏈,都已經成熟。因此 2018 年元旦一過我們就迫不及...
摘要:年,包括分層的網絡以及一個作為共同知識庫的區塊鏈,都已經成熟。是一個在設計上非常不同的公有鏈協議,也是網絡中的基礎層,是整個加密經濟網絡的信任引擎。主要指責是記錄和更新本地累計工作量最高的鏈,并維護鏈上數據的索引。 說到猿起,這些心里的想法能追溯到 2016 年,甚至更早。2017 年,包括分層的網絡以及一個作為共同知識庫(Common Knowledge Base)的區塊鏈,都已經成...
摘要:策略模式介紹策略模式定義了一系列的算法,并將每一個算法封裝起來,而且使它們還可以相互替換。策略模式讓算法獨立于使用它的客戶而獨立變化。使用策略模式的好處策略模式提供了管理相關的算法族的辦法。使用策略模式可以避免使用多重條件轉移語句。 你好,是我琉憶,PHP程序員面試筆試系列圖書的作者。 本周(2019.3.11至3.15)的一三五更新的文章如下: 周一:PHP面試常考之設計模式——工...
閱讀 3684·2021-10-09 09:44
閱讀 3346·2021-09-22 15:29
閱讀 3117·2019-08-30 15:54
閱讀 3018·2019-08-29 16:19
閱讀 2142·2019-08-29 12:50
閱讀 595·2019-08-26 14:04
閱讀 1696·2019-08-23 18:39
閱讀 1345·2019-08-23 17:59