富客戶端程序設計實例 - Action層 - 邏輯分支低耦合: Action耦合Entity
Action層調用Service層,Service層調用DAO層,DAO層有獨立簡單的放方法查閱數據庫中的數據。根據第一幅圖的描述可以看出,設計之初Dao層并沒有關聯到Entity;而是把Entity與Action關聯。DAO層利用方法泛型隔離開一個具體的Entity或者Domain對象(這里沒用到領域對象,領域對象與Entity相似)。這樣設計的好處是:當我要更換一個Entity的時候,只需要從Action里去更改對應的Entity名字就可以了。
Dao層示例代碼:
[javascript] view plaincopy
</div>
</div>
- public <T> void saveInfo(List<T> list)
- {
- Assert.notNull(list, "entity is required");
- for (T obj : list)
- {
- getSession().save(obj);
- }
- System.out.println("Function saveInfo has run");
- } </ol> </div> </div>
- public class EmployeeAction extends BaseAction
- {
- private Logger log = LoggerFactory.getLogger(Employee.class); //log日志
- //調閱數據
- public void read()
- {
- String jsonStr = ajaxJson(service.find(Employee.class));
- }
- // 保存數據
- public void add()
- {
- String jsonStr = getJsonFromRequest();
- System.out.println("保存數據 Request" + jsonStr);
- List<Employee> empList = new ArrayList<Employee>();
- empList.add(getObjectFromJson(jsonStr, Employee.class));
- service.saveInfo(empList);
- }
- //更新數據
- public void update()
- {
- String jsonStr = getJsonFromRequest();
- System.out.println("更新數據 Request" + jsonStr);
- List<Employee> empList = new ArrayList<Employee>();
- empList.add(getObjectFromJson(jsonStr, Employee.class));
- service.updateInfo(empList);
- }
- //刪除數據
- public void destroy()
- {
- String jsonStr = getJsonFromRequest();
- System.out.println("刪除數據 Request" + jsonStr);
- List<Employee> empList = getListFromJson(jsonStr, Employee.class);
- service.delete(empList);
- }
- } </ol> </div> </div>
Action層對應代碼:
[java] view plaincopy
</div>
</div>
紅色字體是耦合到的Entity,DAO的方法泛型設計方式讓分支邏輯上的耦合度降到最低
本文由用戶 Yangcl 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
推薦閱讀
富客戶端程序設計實例 - Action層 - 邏輯分支低耦合: Action耦合Entity
Action層調用Service層,Service層調用DAO層,DAO層有獨立簡單的放方法查閱數據庫中的數據。根據第一幅圖的描述可以看出,設計之初Dao層并沒有關聯到Entity;而是把Ent...
富客戶端程序設計實例 - Action層 - package-info.java 介紹
為什么需要 package-info.java,原因在這里:Package annotations must be in file package-info.java 。 package-inf...
富客戶端程序設計實例 - Action層 - Json 的序列化
Json 序列化是 RIA 應用程序特有的一步環節。Json是一種輕量級數據交換格式,他的出現替代了XMl文件作為平臺無關的媒介。ExtJS作為視圖層,需要與后臺交換數據。交換的方式為Json串...
富客戶端程序設計實例 - Action層 - Struts2基于 package-info.java注解 的Action配置
package-info.java @ParentPackage ( "emps" ) // <package?name="emps"?extends="struts-default"></pa...