課程
/后端開發
/Java
/模式的秘密---模板方法模式
鉤子函數就是判斷是否執行的一個輔助函數,那在實現的時候,里面的加檸檬方法是不是還是必須重寫出來,只是不寫實現的代碼(方法空)?
2014-08-17
源自:模式的秘密---模板方法模式 2-3
正在回答
這里你不妨繼續深入一下, 考慮如下場景:通過詢問的方式來決定是否加入調料。比如,通過在命令行顯示“是否加入調料?(Y/N)", 等待用戶的反饋。然后返回true或false。然后你會發現子類對算法的實現具有了更大的靈活性,你的子類可以應對不用的場景,用戶想喝茶,是否加入調料都可以輕松滿足。正所謂加或不加,茶就在那里,不多不少。
總之,通過鉤子函數我們合理的擴展了算法的使用場景,提升了代碼彈性和可復用性,這就是我們使用模式的終極目的。
是的,一般情況下(即你的實現類不是抽象類)是必須的。因為父類的加調料方法是抽象方法(abstract修飾)。
舉報
封裝算法框架的模板方法模式,用案例告訴你模板方法模式的強大
1 回答為什么要定義成final
2 回答
1 回答
3 回答
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2014-08-17
這里你不妨繼續深入一下, 考慮如下場景:通過詢問的方式來決定是否加入調料。比如,通過在命令行顯示“是否加入調料?(Y/N)", 等待用戶的反饋。然后返回true或false。然后你會發現子類對算法的實現具有了更大的靈活性,你的子類可以應對不用的場景,用戶想喝茶,是否加入調料都可以輕松滿足。正所謂加或不加,茶就在那里,不多不少。
總之,通過鉤子函數我們合理的擴展了算法的使用場景,提升了代碼彈性和可復用性,這就是我們使用模式的終極目的。
2016-01-24
是的,一般情況下(即你的實現類不是抽象類)是必須的。因為父類的加調料方法是抽象方法(abstract修飾)。