鉤子函數(shù)就是判斷是否執(zhí)行的一個輔助函數(shù),那在實現(xiàn)的時候,里面的加檸檬方法是不是還是必須重寫出來,只是不寫實現(xiàn)的代碼(方法空)?

否則悲傷從何而來
2014-08-17
2 回答
舉報
0/150
提交
取消
2014-08-17
這里你不妨繼續(xù)深入一下, 考慮如下場景:通過詢問的方式來決定是否加入調(diào)料。比如,通過在命令行顯示“是否加入調(diào)料?(Y/N)", 等待用戶的反饋。然后返回true或false。然后你會發(fā)現(xiàn)子類對算法的實現(xiàn)具有了更大的靈活性,你的子類可以應(yīng)對不用的場景,用戶想喝茶,是否加入調(diào)料都可以輕松滿足。正所謂加或不加,茶就在那里,不多不少。
總之,通過鉤子函數(shù)我們合理的擴(kuò)展了算法的使用場景,提升了代碼彈性和可復(fù)用性,這就是我們使用模式的終極目的。
2016-01-24
是的,一般情況下(即你的實現(xiàn)類不是抽象類)是必須的。因為父類的加調(diào)料方法是抽象方法(abstract修飾)。