A.盡量將一些需要擴(kuò)展的類(lèi)或者存在變化的類(lèi)設(shè)計(jì)為抽象類(lèi)或者接口,并將其作為基類(lèi),在程序中盡量使用基類(lèi)對(duì)象進(jìn)行編程
B.創(chuàng)建一個(gè)新的抽象類(lèi)C,作為兩個(gè)具體類(lèi)的超類(lèi),將A和B共同的行為移動(dòng)到C中,從而解決A和B行為不完全一致的問(wèn)題
C.將B到A的繼承關(guān)系改成組合關(guān)系
D.區(qū)分是Is-a還是Has-a。如果是Is-a,可以使用繼承關(guān)系,如果是Has-a,應(yīng)該改成組合或聚合關(guān)系