"當(dāng)系統(tǒng)的每一部分都由最優(yōu)解或相對(duì)優(yōu)解組成,那么系統(tǒng)最終也將是最完美的。"

   這句話是在參加莫技術(shù)分享會(huì)上聽(tīng)到的,這句話吸引我占在人群后面聽(tīng)完了她的分享,確實(shí)受益良多。

   本文也旨在描述自己在項(xiàng)目演變中對(duì)一處公共處理邏輯優(yōu)化的過(guò)程,周期略長(zhǎng)最近有時(shí)間整理如下。

 

   業(yè)務(wù)系統(tǒng)數(shù)據(jù)傳遞過(guò)程中,會(huì)抽取一些公共的屬性和方法封裝為特定基類(lèi)以便于后續(xù)開(kāi)發(fā)進(jìn)行繼承。

   這些被抽象出來(lái)的擁有公共屬性的基類(lèi),在業(yè)務(wù)流轉(zhuǎn)過(guò)程中的賦值也應(yīng)當(dāng)進(jìn)行統(tǒng)一妥善的處理。

   大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開(kāi)發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

   看到這里的小伙伴們可能心中有點(diǎn)疑惑,在業(yè)務(wù)組織 Class_A/Class_B/...將基類(lèi)中基本屬性順勢(shì)填充不就可以了嗎?

   實(shí)際業(yè)務(wù)中 BaseClass 中的屬性需要根據(jù)各種不同的場(chǎng)景進(jìn)行演變和推算,你確定將這些公共推算方式放入業(yè)務(wù)邏輯中合適嗎??

   隨著系統(tǒng)擴(kuò)展繼承 BaseClass 的子類(lèi)會(huì)膨脹,所有的子類(lèi)都需要進(jìn)行父類(lèi)基本屬性賦值,代碼看起來(lái)是不是有點(diǎn)重復(fù)?

   當(dāng)公共屬性推算方式發(fā)生變化,修改所有子類(lèi)計(jì)算方式和修改公共方法,工作量孰重孰輕?

   抽取成公共方法這點(diǎn)毋庸置疑的,但怎樣高效和優(yōu)雅的書(shū)寫(xiě)代碼呢?

   本文試結(jié)合實(shí)例,簡(jiǎn)述在業(yè)務(wù)流轉(zhuǎn)中對(duì)擁有公共屬性基類(lèi)賦值的方法以及后續(xù)持續(xù)優(yōu)化。

   例子將省略公共屬性的判斷推算過(guò)程,實(shí)際項(xiàng)目中的公共屬性和業(yè)務(wù)對(duì)象過(guò)于復(fù)雜,自己簡(jiǎn)單抽象對(duì)象如下(關(guān)注點(diǎn)為公共屬性的賦值)。

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開(kāi)發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

public class BaseStudentVO {    private String stu_id;    private String stu_name;    private Integer stu_age;    private Date stu_birthday;

    .......getter/setter
}public class PrimaryScholar extends BaseStudentVO {
     .......logicAttribute
}

網(wǎng)友評(píng)論