一:簡介
二:模板方法模式
定義乙個操作中的演算法的骨架,而將步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義演算法的某些特定步驟。在模板方法模式中,我們需要準備乙個抽象類,將部分邏輯以具體方法以及建構函式的形式實現,然後宣告一些抽象方法來讓子類實現剩餘的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現。
模式動機
在現實生活中很多事情的完成過程都包含幾個基礎步驟。模板方法模式是基於繼承的**復用基本技術,在模板方法模式中,可以將相同的**放在父類,而將不同的方法實現放在不同的子類中。在本例項中。進入遊戲是由一系列的步驟組成的,在父類中定義一系列的步驟。其中選擇登陸遊戲方式和選擇的英雄是不同的,所以可以放到子類中具體實現,
在模板方法模式中,我們需要準備乙個抽象類,將部分邏輯以具體方法以及具體建構函式的形式實現,然後宣告一些抽象方法來讓子類實現剩餘的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現。
控制子類擴充套件,子類必須遵守演算法規則。
模板方法模式通過把不變的行為搬移到超類,去除了子類中的重複**。
子類實現演算法的某些細節,有助於演算法的擴充套件。
通過乙個父類呼叫子類實現的操作,通過子類擴充套件增加新的行為,符合「開放-封閉原則」(軟體實體應該是可擴充套件,而不可修改的。也就是說,對擴充套件是開放的,而對修改是封閉的)。
每個不同的實現都需要定義乙個子類,這會導致類的個數的增加,設計更加抽象。
三:結構圖
四:設計類圖
五:**實現
module類(定義簡易遊戲流程)
package com.game.process;
/* * 簡易遊戲流程抽象類
*/public abstract class module
//定義結構裡哪些方法是所有過程都是一樣的可復用的,哪些是需要子類進行實現的
//所以申明為抽象方法,具體由子類實現
abstract void loginmethod();
//第二步:登陸遊戲是一樣的,直接實現
void login()
//第三步:點選開始按鈕是,直接實現
void clickbeginbt()
//第四步:玩家選擇的英雄有差異,申明為抽象方法,具體由子類實現
abstract void choosehero();
//第五步:選擇召喚師技能不同,申明為抽象方法,具體由子類實現
abstract void chooseskill();
//開始遊戲
void begingame()
}
moduleson01類(module子類,實現抽象方法)
package com.game.process;
/* *module子類
*/import com.game.skill.impl.jipao;
import com.game.skill.impl.kuangbao;
import com.game.domain.houyi;
import com.game.domain.lubanqihao;
public class moduleson01 extends module
void choosehero()
void chooseskill()
}
moduleson02類(實現module抽象方法)
package com.game.process;
/* *module子類
*/import com.game.skill.impl.kuangbao;
import com.game.domain.lubanqihao;
public class moduleson02 extends module
void choosehero()
void chooseskill()
}
process測試類
package com.game.test;
/* *遊戲流程測試類
*/import com.game.process.moduleson01;
import com.game.process.moduleson02;
public class processtest
}
六.執行結果:
從王者榮耀看設計模式(模板方法模式)
從王者榮耀看設計模式(七 裝飾者模式)
從王者榮耀看設計模式 裝飾者模式 一.簡介 王者榮耀中,角色的 傷害值 和 生命值 是很重要的概念。為了保證遊戲的勝利,玩家會通過在遊戲開始前配置合適的遊戲銘文,在遊戲中積累經濟購買裝備的方式來提公升英雄角色的傷害值和生命值。二.裝飾者模式 裝飾者模式 decorator pattern 是一種比較...
從王者榮耀看設計模式(七 裝飾者模式)
一.簡介 王者榮耀中,角色的 傷害值 和 生命值 是很重要的概念。為了保證遊戲的勝利,玩家會通過在遊戲開始前配置合適的遊戲銘文,在遊戲中積累經濟購買裝備的方式來提公升英雄角色的傷害值和生命值。二.裝飾者模式 裝飾者模式 decorator pattern 是一種比較常見的模式,裝飾者模式動態地將責任...
從 王者榮耀 ,看 產品 運營 的博弈
在遊戲中,你可以通過出裝給出不同的玩法 在人生中,你需要用計畫讓自己活得更瀟灑。可是,偏偏我大學所在的這個班級的男生幾乎都是遊戲 動漫愛好者。自打一入學就被他們掛在嘴邊的 a站 b站 擼啊擼 這些我都聽不懂的名詞所籠罩,甚至一度沒有共同語言。近期,王者榮耀 這款遊戲更是空前火爆,無論是萌妹子 大叔還...