背景:一般的軟體都需要一個系統管理核心模塊,包括用戶管理,角色管理,功能選單,用戶對應角色的配置,角色對應功能選單的配置等。
用戶表:user_id, user_name
角色表:role_id, role_name
用戶角色關聯表:user_id, role_id
選單表:menu_id, menu_name, menu_addr
角色選單關聯表:role_id, menu_id
把資料結構、軟體功能都實作出來這個不難,但是如何定義相關的服務類以及相互的呼叫關系呢?
考慮如下場景:
1 在用戶登陸時,要查詢某個用戶的功能選單,將相關選單資訊存入session
這個程序需要到用戶資訊服務類,功能選單服務類,用戶角色服務類,角色對應功能選單服務類等,如何定義各個服務類的職能,并組織這些服務類協同完成“要查詢某個用戶的功能選單”這一功能呢?
思路:用戶服務類發起查詢-》呼叫用戶角色服務類 查詢用戶對應的角色ID(可能有多個角色) ->呼叫角色選單服務類查詢選單ID->呼叫選單服務類查詢到具體的選單資訊-》將查詢到的選單存入session(當然,要組織成樹型結構的物件才可以)
問題:是否應該為關聯表單獨建立service類,比如用戶角色關聯表,也要建一個UserRoleService類嗎?是否也可以在UserSerivce中去查詢用戶角色關聯表sys_user_role呢?當然兩種做法都能實作具體功能的,只是不了解具體的設計原則,是否會對未來的修改產生影響。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/186418.html
標籤:Java EE
上一篇:2020idea通過dao .mapper 添加一條資料,oracle資料庫卻能查到2條資料,并且每查詢一次就會自動多幾條資料
