有一位java求職者,,三年工作經(jīng)驗(yàn),,面試時(shí)問到VO和DTO有什么區(qū)別,他回答不出來,,知識(shí)面挺廣的,,就是不夠深入,薪資要15k,,能不能要,? 1、PO (Persistent Object)entity實(shí)體 里的每一個(gè)字段,,與數(shù)據(jù)庫表的字段相對應(yīng),, 2、VO 有兩種理解,,個(gè)人傾向第二種
3,、DTO 數(shù)據(jù)傳輸對象(Data Transfer Object)是一種設(shè)計(jì)模式之間傳輸數(shù)據(jù)的軟件應(yīng)用系統(tǒng)。用來轉(zhuǎn)換從 entity 到 VO,,或者從 VO到 entity 的中間的東西 ,。 舉個(gè)例子來說明: Web頁面上有三個(gè)信息要展示,username,,remark,gender 而數(shù)據(jù)庫表里,,有兩個(gè)字段,userName,,remark, 沒有 gender,。 這是VO一般有三個(gè)成員變量來對于Web的三個(gè)信息。
而 entity有兩個(gè)成員變量 ,,因?yàn)閷?yīng)數(shù)據(jù)庫表中的兩個(gè)字段 。
這時(shí)如果我們要統(tǒng)計(jì)女性用戶比例多少,,可以利用DTO重新封裝一層,。 首先從頁面上拿到 vo,然后判斷 vo 中的 gender是不是為0 ,,假如0 表示女性,。 如果是0,就把 vo 中的 userName和 remark,,放到 dto 中,。 然后再把 dto 中的 userName和 remark傳給 entity,然后根據(jù) entity 的值,,再入庫到數(shù)據(jù)庫,。 Entity實(shí)體,和PO的功能類似,,和數(shù)據(jù)表一一對應(yīng),,一個(gè)實(shí)體一張表。 個(gè)人認(rèn)為,,要是該求職者綜合能力不錯(cuò),,而只是不知VO和DTO有什么區(qū)別,是可以考慮的,,要是你是面試官,,你會(huì)考慮嗎,? |
|