国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python之MVC

WelliJhon / 1133人閱讀

摘要:層是將生成的文件轉化成代碼,不直接修改層的代碼實現對數據庫的操作,并。作為中間層,調用層的方法獲取結果,完成邏輯功能,再傳遞給層實現數據渲染。我選擇將層作為一個部件類,裝配到層,原先的和的關系不變。

了幾個小項目,在幫助同事的時候發現,每個人對MVC這種設計模式的理解各有千秋。
我對于MVC的理解是M即Model,指的是數據庫層面,V即View,指的是視圖層面,至于C即Control,則是代碼的邏輯部分。
項目背景介紹,使用QT5寫Gui,Mysql作為數據庫。
我采用C繼承V,M繼承C的模式來實現MVC。view層是將QT生成的ui文件轉化成python代碼,不直接修改view層的代碼;model實現對數據庫的CRUD操作,并return。control作為中間層,調用model層的方法獲取結果,完成邏輯功能,再傳遞給view層實現數據渲染。

# view.py
class View(QDialog):
    pass
    
    def render_view(self, data):
        # render view
        pass

# control.py    
class Control(View):
    pass
    
    def do_something(self):
        data = self.get_data()
        self.render_view(data)
    
# model.py  
class Model(Control):
    pass
    
    def get_data(self):
        return "something"

由于model層繼承于control層,當我調用model層,也就是control的子類的方法時,它是不存在的,所以我得先聲明一個空方法。

#control.py    
class Control(View):
    pass
    
    def do_something(self):
        data = self.get_data()
        self.render_view(data)
        
    def get_data(self):
        pass

但達到一定量的代碼量時,發現control層的pass方法(方法體內只有pass)越來越多,覺得這樣不妥呀~,而且當我要測試數據庫交互是否正常時,也就是測試model層的代碼,總是會彈出它爸爸的爸爸,也就是view層寫的Gui,導致感覺非常難受。

于是乎,選擇重構,前后花了兩周不到的時間,復用了部分邏輯,代碼從18K+降到了11K左右。
我選擇將model層作為一個部件類,裝配到control層,原先的view和control的關系不變。

# view.py
class View(QDialog):
    pass
    
    def render_view(self, data):
        # render view
        pass

# control.py    
class Control(View):
    def __init__(self):
        super().__init__()
        self.model = Model()
        pass
    
    def do_something(self):
        data = self.model.get_data()
        self.render_view(data)
    
# model.py  
class Model(object):
    pass
    
    def get_data(self):
        return "something"

這樣處理后,我的model層至此和邏輯徹底分離,測試數據庫交互方便多了,直接在model層下寫個main方法就可以了,而且針對control層可以進行復用,也就是在相同Gui下,我可以在control層實例化多個不同的model,根據業務需要調用不同的model,提升代碼的復用率。

哇咔咔~~

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41139.html

相關文章

  • 寫這么多系列博客,怪不得找不到女朋友

    摘要:前提好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲抱歉了。熟悉我的人都知道我寫博客的時間比較早,而且堅持的時間也比較久,一直到現在也是一直保持著更新狀態。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲:抱歉了!。自己這段時...

    JerryWangSAP 評論0 收藏0
  • python入門 django入門 (一)

    摘要:本人年開發經驗,現就職于電信,因工作需要學習,記錄自己的學習記錄。 本人java10年開發經驗,現就職于電信,因工作需要學習python,記錄自己的學習記錄。后面也...

    hzc 評論0 收藏0
  • 那些年我看過的書 —— 致敬我的大學生活 —— Say Good Bye !

    摘要:開頭正式開啟我入職的里程,現在已是工作了一個星期了,這個星期算是我入職的過渡期,算是知道了學校生活和工作的差距了,總之,盡快習慣這種生活吧。當時是看的廖雪峰的博客自己也用做爬蟲寫過幾篇博客,不過有些是在前人的基礎上寫的。 showImg(https://segmentfault.com/img/remote/1460000010867984); 開頭 2017.08.21 正式開啟我...

    xiaoqibTn 評論0 收藏0
  • Laravel 菜鳥晉級

    摘要:用也有三四個月了,雖然是兼職開發,但是使用的頻率非常之高,畢竟是產品化的一個項目。第二階段數據庫和開發了比較多的功能之后,會發現需要大量的測試數據,這時候和就該大顯身手了。 用Laravel也有三四個月了,雖然是兼職開發,但是使用的頻率非常之高,畢竟是產品化的一個項目。在這期間,也踩了無數的坑,走了很多彎路,所以準備把最近的感悟記錄下來,方便后來者。 第一階段:簡單的增刪改查 這是最...

    YacaToy 評論0 收藏0

發表評論

0條評論

WelliJhon

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<