Java設計模式中的模板模式為何不用接口,而要用抽象類?
Java設計模式中的模板模式為何不用接口,而要用抽象類?
皈依舞
2019-05-15 10:42:47
TA貢獻1868條經驗 獲得超4個贊
因為模板模式暴露的鉤子是生命周期(或處理流程)的一部分。很顯然接口并不能讓你先做好一部分事情,然后其中一些事情(判斷?持久化?從一個外部數據結構轉換為模板所需的數據結構?諸如此類)留空給別人去做。接口只是告訴別人我可以做什么事,但是我不知道怎么做,怎么做到則是由接口的實現類定義。抽象類是我搞定大部分了,你來告訴我一些細節要怎么做就ok了。
TA貢獻1853條經驗 獲得超9個贊
很簡單,模板是包含一些通用業務設計的,里面包含了很多通用的方法。而接口是不能包含方法的(Java8的接口支持default方法和static方法,模糊了和抽象類的邊界,但是仍然不可能像抽象類那樣自由的添加各種public/protected方法)
舉報