定義:一個(gè)抽象類公開定義了執(zhí)行它的方法的方式/模板。它的子類可以按需要重寫方法實(shí)現(xiàn),但調(diào)用將以抽象類中定義的方式進(jìn)行
特點(diǎn):
1、封裝不變部分,擴(kuò)展可變部分。
2、提取公共代碼,便于維護(hù)。
3、行為由父類控制,子類實(shí)現(xiàn)。
企業(yè)級(jí)開發(fā)和常用框架中的應(yīng)用:spring中對(duì)hibernate的實(shí)現(xiàn)(開啟事務(wù),打開會(huì)話,關(guān)閉session)
實(shí)例:下面以玩游戲舉例,所有游戲玩的時(shí)候都有兩個(gè)操作,打開游戲和關(guān)閉游戲,但中間玩的方式就不一樣了,下面看實(shí)際例子。
public class Demo { public static void main(String[] args) { Game g1 = new LOL(); Game g2 = new CF(); g1.playGame(); g2.playGame(); }}abstract class Game{ protected void init(){ System.out.println("初始化游戲并登陸游戲。。。"); } public abstract void play(); protected void end(){ System.out.println("結(jié)束游戲并退出登錄。。。"); } public void playGame(){ init(); play(); end(); }}class LOL extends Game{ public void play() { System.out.println("玩英雄聯(lián)盟游戲"); }}class CF extends Game{ public void play() { System.out.println("玩創(chuàng)越火線游戲"); }}模板模式其實(shí)就是抽象類的應(yīng)用,這個(gè)模式比較簡(jiǎn)單,而且在實(shí)際開發(fā)中也用的比較多。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選