發(fā)文前聲明:下面內(nèi)容是本人日常學(xué)習(xí)做的筆記,一些內(nèi)容來(lái)源于互聯(lián)網(wǎng)。 JavaBean是一種JAVA語(yǔ)言寫成的可重用組件。它的方法命名,構(gòu)造及行為必須符合特定的約定: 可能有些人不明白什么是可序列化,可以看我另一篇博客http://my.oschina.net/pacoyang/blog/151649 DAO(data access objects) 什么是DTO(data transfer object)、什么是VO(value object)、什么是PO(persistent object)? 總結(jié)下,我認(rèn)為一個(gè)對(duì)象究竟是什么O要看具體環(huán)境,在不同的層、不同的應(yīng)用場(chǎng)合,對(duì)象的身份也不一樣,而且對(duì)象身份的轉(zhuǎn)化也是很自然的。就像你對(duì)老婆來(lái)說(shuō)就是老公,對(duì)父母來(lái)說(shuō)就是子女。設(shè)計(jì)這些概念的初衷不是為了唬人而是為了更好的理解和處理各種邏輯,讓大家能更好的去用面向?qū)ο蟮姆绞教幚韱?wèn)題。 比如:我們一張表有100個(gè)字段,那么對(duì)應(yīng)的PO就有100個(gè)屬性。但是我們界面上只要顯示10個(gè)字段,客戶端用WEBservice來(lái)獲取數(shù)據(jù),沒(méi)有必要把整個(gè)PO對(duì)象傳遞到客戶端,這時(shí)我們就可以用只有這10個(gè)屬性的DTO來(lái)傳遞結(jié)果到客戶端,這樣也不會(huì)暴露服務(wù)端表結(jié)構(gòu).到達(dá)客戶端以后,如果用這個(gè)對(duì)象來(lái)對(duì)應(yīng)界面顯示,那此時(shí)它的身份就轉(zhuǎn)為VO。 什么是BO(business object)? BO: POJO在業(yè)務(wù)層的體現(xiàn),對(duì)于業(yè)務(wù)操作來(lái)說(shuō),更多的是從業(yè)務(wù)上來(lái)包裝對(duì)象,如一個(gè)User的BO,可能包括name, age, sex, privilege, group等,這些屬性在數(shù)據(jù)庫(kù)中可能會(huì)在多張表中,因?yàn)槊恳粡埍韺?duì)應(yīng)一個(gè)PO,而我們的BO需要這些PO組合起來(lái)(或說(shuō)重新拼裝)才能成為業(yè)務(wù)上的一個(gè)完整對(duì)象。 EJB EJB(Enterprise JavaBean): 我認(rèn)為它是一組"功能"JavaBean的集合。上面說(shuō)了JavaBean是實(shí)現(xiàn)了一種規(guī)范的Java對(duì)象。這里說(shuō)EJB是一組JavaBean,的意思是這一組JavaBean組合起來(lái)實(shí)現(xiàn)了某個(gè)企業(yè)組的業(yè)務(wù)邏輯。這里的一組JavaBean不是亂組合的,它們要滿足能實(shí)現(xiàn)某項(xiàng)業(yè)務(wù)功能的搭配。找個(gè)比方,對(duì)于一身穿著來(lái)說(shuō),包括一頂帽子,一件衣服,一條褲子,兩只鞋。這穿著就是EJB,其它的就是一個(gè)JavaBean SSH與EJB區(qū)別 EJB是一種javabean的組合規(guī)范,SSH是3個(gè)框架jar包的組合。 EJB本身是JavaEE的規(guī)范由容器廠商負(fù)責(zé)實(shí)現(xiàn),也就是使用EJB,需要使用JavaEE服務(wù)器。而用SSH,直接用Web服務(wù)器, SSH中要解決的目標(biāo)和EJB是一致的。EJB是大型的,SSH是輕量級(jí)的。 |
|
來(lái)自: 昵稱15242507 > 《Java》