MVC架構的一些想法

      從開始接觸j2ee開發到現在在很多的架構上開發過,架構基本上是分爲web、service、dao、entity,並且一層層依賴,每寫一個功能模塊都至少要新建這四個層次的類,感覺很是繁瑣。
      最近有開始自己整理一些架構,從一個同事那得到一些啓發,他希望的是快速開發,儘量通用。於是我也將這種思想整入架構中,大致如下:
      對於數據操作,可以分爲兩種情況,一種綁定實體,一種不綁定實體,即方法對不同的實體都是通用的。
      綁定實體:
      與以前用過的架構原理相似,在dao基類中將entity抽象出來,使dao的每個子類都要並且只對應一個entity,這裏可以通過泛型、註解或者抽象方法等方式讓dao基類來獲取到對應的entity,然而通過entity實現一些常用的增刪改查等操作,dao子類只須指定對應的entity則可以通用基類的這些方法;service和web層類似,service綁定dao,web綁定service,每一層的基類中實現通用的增刪改查等常用操作,對於一般的模塊只須建立這四個層次的類繼承分別的基類即可,一般情況下都不用去覆蓋基類的方法了,這樣下來一個模塊除了entity類中有相應的代碼外,其餘幾個類代碼基本上都會很少。
      不綁定實體:
      寫dao基類,與上一種不同,在這個dao的子類中不需指定對應的entity,基類同樣寫通用常用的方法,然後每個方法可以通過參數將entity類對象或者entity類直接傳入即可知道當前是操作哪個entity了,在方法實現中通過傳入的參數來獲得entity的信息,這些信息可以包括entity的主鍵、對應的表、判斷該entity在數據庫中是否存在的SQL語句等等;
      編寫service基類,這個基類依賴一個通用的dao類,實現通用並常用的一些方法,將entity從方法參數中傳入;
      編寫web層的基類,依賴一個通用的service類,寫通用的一些方法,然而service的方法中需要傳入entity類或者類對象,那麼我將web層綁定entity,每個web層類需要綁定一個entity類,同樣可以通過泛型、抽象方法或者註解等多種方法來實現這個綁定。
      這樣一來一般的功能模塊只須寫單獨的entity和web,web綁定entity,然後使用通用的service和dao,web層也已經有一些通用的方法了,一般的增刪改查的功能基本上都可以通用了,一個模塊也就只須寫兩個類了;然而如果有特殊的一些功能方法需要寫,則可再寫單獨的service和dao來繼承基類,再實現或者覆蓋方法來實現這特殊的功能吧。
      
      大概就這樣,我這裏只是想到這麼種架構的思想,具體框架、技術等可以挑選ssh等或者自己寫都可以。當然想到的方面也很侷限,想的這些應該也只適合一些小型的管理類項目吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章