posts - 4,  comments - 16,  trackbacks - 0

          我們現在通常用的開發層次都是 頁面-〉Action -〉Serice -〉Dao -〉DB
          Service中進行業務處理
          Dao中進行和數據庫相關的一些CUID處理

          下面就出現了一個比較困擾我的問題 比如一個簡單的例子,我要取一個員工Employee
          的信息到頁面,我要調用 通過Action 調用 Service的 loadEmployee(...) 的方法
          然后在 Dao 中調用 loadEmployee(...) 方法 , 我的困惑就是Entity和VO 到底各自
          負責什么事情。

          我考慮了3種情況:
          1、load方法中的參數是比如這樣的 (String employee, int age ... )
          ?Service中 返回的是 VO 到頁面
          ?Dao中 返回 Entity
          ?
          ?Serivce中的方法大概這樣寫
          ?
          ?public EmployeeBean loadEmployeeBean(String employee, int age ... ) {
          ??EmployeeEntity employeeEntity = employeeDao.loadEmeployee(String employee,

          int age ... );
          ??... 屬性Copy ...
          ??return employeeBean;
          ?}

          2、load方法中的VO是比如這樣的 Service 中參數是 (EmployeeBean employeeBean) Dao中的參數是
          (EmployeeEntity employeeEntity)
          ?其他同方法1

          3、第三種方法的參數傳遞方式和第二種一樣但是 Dao 返回的不是一個Entity 而是一個VO
          ?public EmployeeBean loadEmployeeBean(EmployeeBean employeeBean) {
          ??EmployeeBean employeeBean = employeeDao.loadEmeployee(EmployeeBean

          employeeBean);
          ??... 邏輯操作 ...
          ??return employeeBean;
          ?}


          第一種情況參數固定很難擴展
          第二種情況Dao 返回Entity 把Entity 暴露在 Service 下 并且要繁瑣的 properties Copy 操作
          覺得很不爽 有人會說用BeanUtils 但是如果屬性類型不一樣的話很麻煩 多表操作更麻煩

          我把第三種情況在詳細的描述一下
          其實這幾種情況的主要差別就是 參數返回值
          第三種情況中? Service? 和 Dao 中傳入的 參數返回值 都是 VO 對象
          參數是VO的好處就是 可以 在不用改變方法的情況下 增加 查詢條件 當然減少也可以
          返回對象是VO的好處就是 多表查詢 返回 某些字段 可以封裝在VO對象中 這樣取值比較方便


          我個人比較傾向于 第三種情況
          不知道各位有何高見

          posted on 2006-12-02 02:11 IT Space 閱讀(2049) 評論(4)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 田东县| 兴化市| 浑源县| 揭东县| 萍乡市| 久治县| 韶山市| 乾安县| 崇左市| 惠水县| 永年县| 中阳县| 沁阳市| 荣昌县| 昂仁县| 天台县| 象州县| 卫辉市| 墨竹工卡县| 莱芜市| 凤台县| 阜宁县| 鄂温| 梁河县| 武穴市| 常山县| 饶河县| 五峰| 平原县| 凉山| 将乐县| 承德县| 田林县| 双柏县| 潼关县| 江津市| 加查县| 永靖县| 安义县| 临朐县| 紫金县|