[問題] 請問一個MVC的實際案例

作者: q374077 (q374077)   2016-04-04 09:17:47
越google越懷疑自己到底有沒有懂
架構是android->php->mysql
我在android端寫幾個controller
(就是各種SQL,select A、select B WHERE x = y 之類的)
寫一個php在local server做model接收和發送資料給controller
view的工作就是把controller丟回來的結果用json解析,表格或條列,顯示給使用者
好處是資料安全和可以各自分開編寫,對大型專案有利
壞處是比較複雜
請問我這樣對mvc的架構算是了解了嗎?
作者: MIM23 (HAWK)   2016-04-04 09:19:00
不是這樣吧…
作者: ckvir (ckvir)   2016-04-04 11:26:00
我覺得算是mvc了
作者: MartinJu (荒謬人生)   2016-04-04 11:44:00
http://tinyurl.com/j7kc2lc MVC只在pres.層
作者: ssccg (23)   2016-04-04 13:42:00
"就是各種SQL",通常SQL只會在model層
作者: kiwatami (悠游自在)   2016-04-05 09:30:00
controller 只負責呼叫 model 把撈回來的資料送給 view不應該包含太複雜的邏輯 sql 就更不用說了 完全不能放以你的例子來說String str = android.getData(xxx.php);android.setText(str);controller 裡面只能有這兩行 可以呼叫多個 model再將結果傳給另一個 model 但 model 之間不能呼叫彼此也因為如此才需要 controller 操作整合就字面上的意義來說 就是控制器 控制資料處理流程以及資料間的交換 controller 寫得好 才表示真的懂 MVC
作者: sean0430 (NANA)   2016-04-05 17:18:00
以我的理解是Android有自己的MVC,MVP或MVVM..等架構,後端有自己的MC架構(不一定有V)
作者: kiwatami (悠游自在)   2016-04-05 20:48:00
資安是資訊安全 不管放在哪裡都跟資安沒關係當然如果你放在 js 內就有關係了以 SQL Injection 來說 是要在使用參數產生 sql 語法前處理參數的內容 避免產生問題 例如雙引號MVC的重點在於不論你今天是要做 web, client-server還是單純的 API,要更改的部分只有 controller 跟 viewmodel 的部分可以說是幾乎不用修改的只要把原本吐給 template 的 controller 改成吐 json就變成 api 反之亦然 跟 model 沒有什麼關係這就是 MVC 的其中一個目的 因此你再想想把 sql 寫在 controller 內 當你需要使用相同資料吐給不同目標時 會不會需要重新寫一次 sql?因此在學 MVC 時可以不斷反問自己 這樣做的話未來是不是可以很輕鬆的遷移程式碼如果不行 那可能就是不正確的 設計要注意能夠互相聯絡的只有 controllerModel 間是彼此獨立的 避免未來修改被影響到例如讀檔案 原本寫成在一個 model 呼叫讀取檔案 model之後再解析內容取得資料 如果資料來源從電腦改成網路那這個 model 就廢了 反之如果是從 controller 呼叫讀取資料的 model 再傳給資料解析的 model這樣不管資料來源怎麼改 資料解析的 model 都不用修改因此不斷的反問自己 當環境改變時是不是可以順利轉移這樣一來就可以慢慢上手了

Links booklink

Contact Us: admin [ a t ] ucptt.com