[问题] 请问一个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