基於Python的MVC模式學習

WebMVC.GIF

MVC模式的學習,本學習例子重點關注如何將Model與View分離,參考Web-MVC結構(上圖,本例將Browser和View統稱爲View),Controller主要作用於連接View與Model,就算沒有View/Controll的代碼,Model也應該是完整的,雖然操作起來會相對麻煩一些,但是隻要我們知道Model的API,依然能正常運行這個程序。

雖然本程序的Model部分只是return了一個字符串進行測試,但我認爲已經足以表達我所關注的重點:如何在保證View與Model分離的情況下將View的input傳給Model,並從Model得到output輸出到View。


  • View Class

    • GUI設計導入(存放於View/Window/),可以使用wxFormBuilde快速生成圖形化界面
    • GUI各控件所用到的參數設置和獲取值接口的封裝
    • GUI的初始化接口
    • GUI控件事件綁定以及回調函數的設置
    • 考慮到控制檯(View/Console/)輸出也歸類到View,控制檯初始化/輸出的接口封裝,暫時沒添加控制檯input交互
    • View/Window/目錄除了會存放已經設計好的GUI之外,還可以添加其他酷炫的動態效果設計
    • View/Console/目錄功能和View/Window目錄功能一樣,如果覺得簡單的print()太單調,可以自行封裝酷炫的輸出方式,在View/View.py中調用
  • Model Class

    • 各項業務功能的導入(如:Model/Test/),可以完全獨立編寫該業務所需要完成的功能,封裝API給Model/Model.py進行各項功能間的複雜邏輯處理
    • 進行復雜邏輯的編寫,封裝對應API,不依賴於子目錄外的其它文件
    • 輸出接口與回調函數的設置接口,用以提供給Controll直接使用
  • Controller Class

    • 並沒有太嚴格的與Application進行區分,首先進行常規的入口參數檢查,並且做好用法幫助提示輸出
    • 實例化View與Model
    • 編寫輸入與輸出的回調函數 - do_work() 和 finish()
    • 將Model輸入的回調函數綁定到觸發任務的View控件對應事件
    • 將View輸出的回調函數綁定到Model的輸出

代碼下載:

MVC for python

git clone https://github.com/w0x0021/MVC_for_python.git

目錄結構 (20181124)

├─Model
│  ├─Test
│  │  └─test.py
│  └─Model.py
└─View
│  ├─Console
│  ├─Window
│  │  └─WindowMain.py
│  └─View.py
├─main.py
└─Controller.py

參考鏈接:

到底什麼是MVC?

wxpython 與 mvc

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