国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

做網(wǎng)站的MVC模式到底如何分配model。
巴扎黑
巴扎黑 2017-05-16 17:06:54
0
7
681

MVC模式中controller是一個管道,Model是處理器。但很多時候Controller會需要到不同表格的不同內(nèi)容。這樣如果在Model中就會有很多像get_name,get_info,get_id之類的只要一條Query就能完成的功能。感覺很累贅。其實在Controller要用的地方寫條Query就好了,但是這樣又破壞了MVC的規(guī)則。

現(xiàn)在的想法是把挑出用的多的函數(shù)放到Model裡面,把零碎的在留在Controller裡面。
求各位給點意見撒~

巴扎黑
巴扎黑

全部回覆(7)
習(xí)慣沉默

瘦C,胖M,C最好不要超過15行

迷茫

其實你說的這個問題很多框架都可以解決,也就是active record功能,也就是根據(jù)程式碼動態(tài)生成query語句,它最開始在rails框架裡得到推廣,並逐步在其他語言裡得到實現(xiàn)。如

$userModel->find_one_by_id(123);

實際上如果你的框架支援a(chǎn)ctive record,像這種簡單的根據(jù)主鍵查詢,我們是不需要在model裡寫一行代碼的,model基類根據(jù)你所調(diào)用的方法名,組裝成合適query語句,並將查詢結(jié)果回傳給你。

我不知道你使用的是何種語言,但目前基本所有的腳本語言都有active record的實現(xiàn),你可以在自己的專案中實現(xiàn)這一功能,這樣也為後續(xù)的開發(fā)帶來好處。

能在程式碼中約束的問題,比用一些設(shè)計原則約定更有效,因為你不能保證每個開發(fā)者的水平都一致。

世界只因有你

可以參考下fowler的模式書, 事物腳本,表格模組,領(lǐng)域模型三種風(fēng)格.

迷茫

我不知道ci是如何實現(xiàn)active record的,不過你說的小函數(shù),在許多php的active record實作裡面都是使用的魔術(shù)方法,或是程式碼產(chǎn)生器自動幫你產(chǎn)生的,都不用你自己寫。

舉一個例子,active record在doctrine裡面是這樣實現(xiàn)的:假如一個表foo,帶字段bar1, bar2, bar3,doctrine會根據(jù)table schema直接產(chǎn)生四個檔案: FooTable.class.php,F(xiàn)ooTableBase.class.php ,F(xiàn)oo.class.php,F(xiàn)ooBase.class.php。在兩個base檔案裡面,會有一系列自動產(chǎn)生的getter和setter例如getBar1(),setBar1($param)這些方法。 base檔案是不允許程式設(shè)計師自己修改,它會隨著schema的改變而改變。而非base類直接繼承了base類,所以看起來這個類會乾淨(jìng)許多

滿天的星座

把你的應(yīng)用邏輯放在model裡面

Peter_Zhu

做好分層吧,controller負(fù)責(zé)頁面層級的控制邏輯

迷茫

。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板