簡體中文 | 繁體中文

大話設計模式-----第151章


逍遙農場 都市山神王 億萬天后心尖寵 唐朝大齡剩女 嗜血王爺冷情妃 奪舍成妻 奉旨三嫁:悍妃不可擋 總裁大人撲上癮 王妃要跳槽 重生打造完美家園 築天神帝 滄煙記 冥婚:靈堂裡的新房 猛鬼大學 詭事錄 為汝花痴 鬥破龍榻:玩死絕情帝 望族女——冤家郎 故鄉相處流傳
第151章

小A:“師兄,能給我講講模板方法模式的結構嗎?”

大B:“在模板方法模式中有兩個參與者進行協作。”

小A:“哪兩種參與者?”

大B:“抽象模板類和具體類。”

小A:“什麼是抽象模板類?”

大B:“定義一個或多個抽象操作,由子類去實現。這些操作稱為基本操作。定義並實現一個具體操作,這個具體操作透過呼叫基本操作給確定頂級邏輯。這個具體操作稱為模板方法。”

小A:“什麼是具體類啊?”

大B:“實現抽象模板類所定義的抽象操作。如上面的訂單處理所示:AbstractOrder就是抽象模板類,placeOrder即是抽象模板方法。GetOrderItemPrice,getSpendingLimit和saveOrder三個抽象方法為基本操作。具體子類能按需要去實現這三個抽象方法。不同的子類可能有著不同的實現方式。”

程式碼:

PublicclassConcreteOrderextendsAbstractOrder{

publicintgetOrderItemPrice(OrderItemorderItem){

//計算貨物的售價

……

}

publicintgetSpendingLimit(intcustomerId){

//讀取客戶的信用額度

……

}

publicintsaveOrder(intcustomerId,inttotal,ListorderItemList){

//寫入資料庫

……

}

}

大B:“rendercode();ConcreteOrder為AbstractOrder的具體子類,ConcreteOrder需要去完成具體的三個基本操作。同時它也具有了父類一樣的處理邏輯。把具體的實現延遲到了子類去實現,這就是模板方法模式所帶來的好處。”

推薦小說