[問題] 由外層替換內層的function
各位先進好
我最近嘗試用java要寫一個專案
但對OO的觀念還不是很好
總是會用到寫C的直覺想法去寫
所以標題下的可能會讓人看不懂,先在此說抱歉
我的問題是這樣的:
class Api
---------------------------
apiMethod()
|
|->------ class A------
classAMethod()
|
|->------ class B -------
classBMethod()
當使用者import class api
使用apiMethod時,會執行到classA中的 classAMethod()
接著會執行到 classB中的 classBMethod
但會遇到一個問題是,classBMethod這個method有部分使用者會需要自己來實做
那我該如何讓使用者能把classBMethod自己override
因為apiMethod跟classAMethod中的流程不會變,所以使用者只需更改classBMethod
我目前想到的作法是,請使用者繼承classB,並把classBMethod override
接著從apiMethod的建構子中把使用者繼承的classB一路傳到classAMethod中
這樣classAMethod再執行classBMethod就會執行到使用者自己override的method
但這樣的方法如果中間又多了一層,我就得一層層傳進去,是否太蠢了@@
不知道有沒有其他作法可以提供給我参考呢?
謝謝指教
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.80.110.112
※ 文章網址: https://www.ptt.cc/bbs/java/M.1422525220.A.4E8.html
推
01/29 19:33, , 1F
01/29 19:33, 1F
推
01/29 20:44, , 2F
01/29 20:44, 2F
→
01/29 23:41, , 3F
01/29 23:41, 3F
→
01/29 23:42, , 4F
01/29 23:42, 4F
→
01/29 23:43, , 5F
01/29 23:43, 5F
→
01/29 23:46, , 6F
01/29 23:46, 6F
→
01/29 23:48, , 7F
01/29 23:48, 7F
→
01/30 12:32, , 8F
01/30 12:32, 8F
推
01/30 13:33, , 9F
01/30 13:33, 9F
→
02/01 17:26, , 10F
02/01 17:26, 10F
→
02/01 17:27, , 11F
02/01 17:27, 11F