国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

用MVC模型引導你的WEB設計思路

2024-07-21 02:14:50
字體:
來源:轉載
供稿:網友
  • 結合起來讓項目面向對象化。以下是我一點點心得。
    先介紹一下mvc的概念:
    mvc(model-view-controller),即把一個應用的輸入、輸出、處理流程按照model、view、controller的方式進行分離,這樣一個應用被分成三個層——模型層、視圖層、控制層。
     模型(model):就是業務流程/狀態的處理以及業務規則的制定。即是mvc的主要核心。
     視圖(view):代表用戶交互界面,也就是web的html界面。
     控制(controller):可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求。

    以下以一個簡單的留言板作為分析例子。

    1)從上面的概念來看,留言板可以切成三部份。
     模型(m):包含 數據庫鏈接、生成數據集、數據庫更新操作。
     視圖(v):包含 獲取模型的數據集,將數據集內填充到各種顯示界面內,如(留言板列表,管理控制頁面,添加修改刪除界面等一切用戶看得到的頁面。)
     控制(c):包含 數據庫更新的數據校驗,將更新完畢后的結果轉交給視圖進行呈現。

    2)三部份已經出來,下面是更進一步的細化。
     模型(m)
      數據鏈接:數據鏈接參數、鏈接失敗處理。
      數據操作:生成固定格式的數據集、運行單行sql、解析固定格式的數據集更新數據庫(內容包括有:留言記錄,管理員帳號,系統設定)。
      文件操作:將文件內部格式封成數據集,并附帶讀取寫入文件操作。(內容包括有:留言板樣式設定、版權設定、搜索引擎關鍵字設定、留言板標題設定)
     視圖(v)
        數據顯示:根據要求授權給控制器[c]向模型[m]請求數據集,然后根據數據集顯示出界面。
        操作結果顯示:根據控制返回的數據資料決定顯示的提示資料
        具體資料包括有:
          留言添加頁:判斷留言者是否管理員、判斷本次留言是回復還是新建留言。
          留言管理頁:批量刪除留言、查詢留言、管理員帳號管理、系統設定等。
          留言顯示頁:判斷留言是否為管理員專用、判斷本留言是否為管理員發布、是否允許回復、是否顯示留言者的敏感資料、留言是否需要審核后再顯示。

     控制(c)
      數據/文件操作:接收操作資料,校驗數據是否符合條件,引用模型的生成數據集類生成指定數據集,然后交給相應的模型操作方法操作,并獲取操作結果以預定好的格式轉交給視圖處理

    3)系統基本上細化完畢,下一步就是將以上分析出來的東西封裝成class
      模型(m):
        數據庫鏈接和數據操作可以封成一個class。
        數據庫數據集的結構,可以引用dictionary控件與數組完成。其間操作也可以封成一個class具體可以仿造asp.net中dataset對象的部份機構。
        文件操作部份封裝成一個class
        文件結構定義可以封成一個class以方便控制直接引用,然后轉交給文件操作class進行相應的操作。
      視圖(v):
        視圖部可均是以文件模式出現,也可以將部份代碼封裝后引用。也可以引用現有的模板類實現代碼分離等。
      控制(c):
        數據校驗:sql注入防御處理、日文字符替換處理、特定常用校驗正則式,這個是控制器常用的函數,可以封成class也可以以函數型式存在獨立文件,使用時直接引用。
        數據/文件更新操作:由于直接操作,可以避免使用class,而是以文件模式出現,每個文件處理模型(m)中的某個類。并完成控制(c)的工作。
        視圖[v]模型[c]鏈接器:接收視圖[v]要求數據集的請求,將請求轉換成模型[m]合適的sql句,然后交給模型[m]數據集成生器生成數據集,然后返回給視圖[v],這個處理比較麻煩,如果沒必要作得太嚴謹的話可以直接使用字段名,并在視圖[v]以sql標準的條件句進向模型[m]請求數據。

     疑:
      視圖[v]模型[c]鏈接器,對這個的設定我還是有點遲疑的。因為在mvc中,v對m的請求中是不需要c的摻和的,但是,這個鏈接器的操作確實很符合c的概念,所以這里我把它放在了控制器[c]里。或許他可以放至在視圖[v]內。畢竟這個是視圖[v]的事。這個就看每個人對mvc的理解了。

    以上基本完成了留言板的結構分析與類的抽象,有不少的地方比較繁瑣,甚至是啰嗦,一個留言板其實是沒必要這樣,不過,這個例子里作出來的不少class可以直接使用在其它更大的項目中去,比如控制器[c]中的數據集請求轉換器,校驗部份、模型[m]中的數據庫鏈接等,之所以遵循mvc模型進行編程不但是為了讓程序設計更靈活,最重要一點是可以很快將項目拆開成一小塊一小塊,然后又將這些小塊再折成更小的塊,一直折到單個類的某個方法某個屬性,等你完成這些小塊代碼后,那系統也就完成了。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 互助| 常山县| 涞水县| 石门县| 玛纳斯县| 天气| 新竹县| 陇川县| 玉田县| 甘泉县| 黄平县| 宜宾县| 牡丹江市| 固安县| 墨江| 社旗县| 博客| 灵丘县| 铜山县| 苍溪县| 东宁县| 西丰县| 兴仁县| 罗山县| 曲阳县| 冕宁县| 永吉县| 芜湖县| 四川省| 嘉定区| 保德县| 东阳市| 桑植县| 神农架林区| 固阳县| 永年县| 长沙县| 定边县| 屏东市| 仁寿县| 叙永县|