第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

現(xiàn)在的想法是把挑出用的多的函數(shù)放到Model里面,把零碎的在留在Controller里面?

現(xiàn)在的想法是把挑出用的多的函數(shù)放到Model里面,把零碎的在留在Controller里面?

德瑪西亞99 2023-04-03 18:14:33
MVC模式中controller是一個管道,Model是處理器。但是很多時候Controller會需要到不同表的不同內(nèi)容。這樣如果在Model中就會有很多像get_name,get_info,get_id之類的只要一條Query就能完成的功能。感覺很累贅。其實在Controller要用的地方寫條Query也就好了,但是這樣又破壞了MVC的規(guī)則。
查看完整描述

2 回答

?
至尊寶的傳說

TA貢獻1789條經(jīng)驗 獲得超10個贊

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

$userModel->find_one_by_id(123);

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

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

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


查看完整回答
反對 回復(fù) 2023-04-07
?
海綿寶寶撒

TA貢獻1809條經(jīng)驗 獲得超8個贊

舉一個例子,active record在doctrine里面是這樣實現(xiàn)的:假如一個表foo,帶字段bar1, bar2, bar3,doctrine會根據(jù)table schema直接生成四個文件: FooTable.class.php,F(xiàn)ooTableBase.class.php,F(xiàn)oo.class.php,F(xiàn)ooBase.class.php。在兩個base文件里面,會有自動生成的一系列g(shù)etter和setter比如getBar1(),setBar1($param)這些方法。base文件是不允許程序員自己修改,它會隨著schema的改變而變化。而非base類直接繼承了base類,所以看上去這個類會干凈許多

查看完整回答
反對 回復(fù) 2023-04-07
  • 2 回答
  • 0 關(guān)注
  • 216 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號