這些天在細(xì)看《J2EE Development without EJB》書(shū),感受頗多。說(shuō)起來(lái)做J2EE方面開(kāi)發(fā)也有幾年,自己認(rèn)為自己還是有一定實(shí)力的。但是看完以后,再針對(duì)我們項(xiàng)目的開(kāi)發(fā)感覺(jué)很多地方做的確實(shí)有很多問(wèn)題。因?yàn)橐恢倍歼@樣做,沒(méi)有人提出異議。悶著頭做事情,有時(shí)候確實(shí)不好,要交流,特別是要傾聽(tīng)那些經(jīng)驗(yàn)豐富的前輩的教誨。
OO,接觸開(kāi)發(fā)也這么多年了,確實(shí)很少有項(xiàng)目,真正做到OO的。看看我們的項(xiàng)目,POJO做成偽對(duì)象,只是負(fù)責(zé)了值的傳遞,只有可憐的setter和getter,其中沒(méi)有任何業(yè)務(wù)邏輯操作的代碼(沒(méi)有任何行為)。我們所謂的業(yè)務(wù)邏輯是引入一個(gè)Manager進(jìn)行綜合處理。
1年前,也是看了jPetStore收益很多。今天再次看這個(gè)代碼。又引發(fā)了更多的思考。
先看jPetstore的處理:
在org.springframework.sample.jpetstore包中:
Account類:比較簡(jiǎn)單,普通的JavaBean。
Cart類和CarItem類:從關(guān)系模型中,可以看到這是一個(gè)主從關(guān)系的對(duì)象。其中Cart(購(gòu)物車)中有不少行為。例如:新增、刪除購(gòu)物車項(xiàng)目;計(jì)算總金額。一般來(lái)說(shuō),我們項(xiàng)目中一般這樣的邏輯是寫(xiě)在Manager類中的。
在Order類中,也采用一些業(yè)務(wù)行為,例如初始化訂單等等。