富客戶端程序設計實例 - Action層 - 邏輯分支低耦合: Action耦合Entity

Yangcl 11年前發布 | 12K 次閱讀



        Action層調用Service層,Service層調用DAO層,DAO層有獨立簡單的放方法查閱數據庫中的數據。根據第一幅圖的描述可以看出,設計之初Dao層并沒有關聯到Entity;而是把Entity與Action關聯。DAO層利用方法泛型隔離開一個具體的Entity或者Domain對象(這里沒用到領域對象,領域對象與Entity相似)。這樣設計的好處是:當我要更換一個Entity的時候,只需要從Action里去更改對應的Entity名字就可以了。

        Dao層示例代碼:

[javascript] view plaincopy
</div> </div>

  1. public <T> void saveInfo(List<T> list)  
  2.     {  
  3.         Assert.notNull(list, "entity is required");  
  4.         for (T obj : list)  
  5.         {  
  6.             getSession().save(obj);  
  7.         }  
  8.         System.out.println("Function saveInfo has run");  
  9.     }  
  10. </ol> </div> </div>

            Action層對應代碼:

    [java] view plaincopy
    </div> </div>

    1. public class EmployeeAction extends BaseAction  
    2. {  
    3.     private Logger log = LoggerFactory.getLogger(Employee.class); //log日志  
    4.   
    5.   
    6.     //調閱數據  
    7.     public void read()  
    8.     {  
    9.         String jsonStr = ajaxJson(service.find(Employee.class));  
    10.     }  
    11.   
    12.     // 保存數據  
    13.     public void add()  
    14.     {  
    15.         String jsonStr = getJsonFromRequest();  
    16.         System.out.println("保存數據 Request" + jsonStr);  
    17.         List<Employee> empList = new ArrayList<Employee>();  
    18.         empList.add(getObjectFromJson(jsonStr, Employee.class));  
    19.         service.saveInfo(empList);  
    20.     }  
    21.   
    22.     //更新數據  
    23.     public void update()  
    24.     {  
    25.         String jsonStr = getJsonFromRequest();  
    26.         System.out.println("更新數據 Request" + jsonStr);  
    27.         List<Employee> empList = new ArrayList<Employee>();  
    28.         empList.add(getObjectFromJson(jsonStr, Employee.class));  
    29.         service.updateInfo(empList);  
    30.     }  
    31.   
    32.     //刪除數據  
    33.     public void destroy()  
    34.     {  
    35.         String jsonStr = getJsonFromRequest();  
    36.         System.out.println("刪除數據 Request" + jsonStr);  
    37.         List<Employee> empList = getListFromJson(jsonStr, Employee.class);  
    38.         service.delete(empList);  
    39.     }  
    40.   
    41. }  
    42. </ol> </div> </div>

              紅色字體是耦合到的Entity,DAO方法泛型設計方式讓分支邏輯上的耦合度降到最低



     本文由用戶 Yangcl 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
     轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
     本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!