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 閱讀(2048) 評論(4)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 二手房| 宕昌县| 嘉义县| 青海省| 凤翔县| 宽甸| 光泽县| 阳信县| 普安县| 临高县| 遵义市| 湘乡市| 温州市| 曲松县| 郑州市| 屏东县| 平江县| 洪泽县| 仁化县| 山阴县| 通许县| 玉门市| 灵石县| 始兴县| 云阳县| 长海县| 临澧县| 思茅市| 房山区| 黑河市| 汝阳县| 莱阳市| 烟台市| 潍坊市| 鹤壁市| 舒兰市| 辛集市| 广元市| 庆元县| 黄浦区| 富川|