最近筆者在軟件產(chǎn)品研發(fā)過程中遇到一問題,解決起來相當(dāng)?shù)募。產(chǎn)品架構(gòu)在規(guī)劃階段定位分布式多層架構(gòu),第一階段采用B/S架構(gòu),同時研發(fā)出全部的服務(wù)端組件(Servlet和Java beans),在組件成熟并且B/S架構(gòu)產(chǎn)品成熟的情況下,再研發(fā)C/S架構(gòu)產(chǎn)品,這樣一來,風(fēng)險就大大降低了。
在B/S架構(gòu)產(chǎn)品研發(fā)的時候,使用了Struts框架,其中的兩大基礎(chǔ)對象是ActionForm和Action。自定義的ActionForm都要繼承自org.apache.struts.action.ActionForm,例如
Public class MyClassForm extends org.apache.struts.action.ActionForm {
Private String a;
Private String b;
……
//getter 和 setter省略
}
這在B/S產(chǎn)品研發(fā)階段沒有任何問題,但是到了C/S產(chǎn)品研發(fā)階段,問題就來了,客戶端提交給服務(wù)器的數(shù)據(jù)不再是ActionForm,而是只包含字段的純JavaBean,代碼如下
Public class MyClass {
Private String a;
Private String b;
……
//getter 和 setter省略
}
于是乎,在原來的B/S架構(gòu)研發(fā)成果上,對于C/S架構(gòu)產(chǎn)品的研發(fā),都多了這個純JavaBean的封裝,如果業(yè)務(wù)邏輯發(fā)生變化,要對MyClassForm和MyClass都進行修改。
如果Java能支持多繼承,那么就很省事情了。即自定義的MyClassForm能同時從org.apache.struts.action.ActionForm和MyClass繼承:
Public class MyClassForm extends MyClass,org.apache.struts.action.ActionForm {
}
可惜啊,JDK不支持多繼承。
以上內(nèi)容是關(guān)于關(guān)于Java缺乏多繼承機制的探討的介紹,要想了解更多相關(guān)信息、教育培訓(xùn)內(nèi)容,請隨時關(guān)注唯學(xué)網(wǎng),小編會第一時間為大家更新、跟進最新信息。