看板 PHP 關於我們 聯絡資訊
※ 引述《yororu (人生啊!)》之銘言: : 我不曉得到底用mvc建構為什麼要寫的這麼複雜???? : -- : 我並不是要求別人寫完美的給我.. : 我只是在想..到網路去下載CRM改和乾脆自己寫那個比較好?? : 還有如果自己寫的話需要用到class嗎???還是說儘量少用效率會比較好呢?? 我們到底需要 class 幹麼? 我們已經夠苦逼的碼農人生為什麼還要更多我看不懂的 framework 進來攪和, 老實說,我看過很多 phper 其實都有跟你相同的疑惑,非常多。 如果要一個最簡單的解釋,我會說, 物件導向(也就是你所謂的 class)的成因就和 function 沒有兩樣, 是一種為了能更「彈性」開發產生的程式思維。 誠如我今天要連線資料庫,如果不使用 function ,我只要一行 mysql_connect('host', 'user', 'password'); 如果我要把他寫成 function,我需要三行 function dbconn () { mysql_connect('host', 'user', 'password'); } 那麼如果有些人在整個程式裡, 從來都只需要用一次的 mysql_connect,那他一定會問, 為什麼一行可以解決的事,我需要為了 function 弄成三行, 還要放到另外一個單獨的檔案裡,再 include / require 進來, 這樣不是犯傻嗎? 但是你我都很清楚(而且不假思索), function 是很基礎而且必要的一種寫法。 同樣的,物件導向,是一整個大格局程式設計的基礎, 很多 phper 在沒有接觸到大型程式架構前,很難理解物件導向到底有什麼意義。 但實際上物件導向真的就是個基礎, 透過物件特性所衍生出來的設計模式和解決方案(也就是應用), 才是它的精神所在。 當然物件導向本身就有一些特性,讓它像是一種「強大且內斂」的 function , 從這個角度上來說,即使不使用設計模式也可以體會到物件導向的好。 另外我想你是不是誤解 MVC 了, 你所提的例子和 MVC 其實沒有直接關係,那就是個物件而已 :P MVC 算是一種比較抽象的設計模式觀念,除了 MVC 還有 MVVM 以及後來的 MVP http://zh.wikipedia.org/wiki/MVC http://en.wikipedia.org/wiki/Model_View_ViewModel http://zh.wikipedia.org/wiki/Model_View_Presenter 要說在小系統中 MVC 有什麼好…嗯,快速開發算嗎(被毆 我很可以理解,你會覺得原本簡單的東西用了這些框架之後反而變得複雜, 是這樣的,在一些 phper 寫 code 的架構裡,一隻 php 就是一個「頁面」, 但當網站架構複雜到某個程度後,很多頁面的處理上會開始變得複雜, 例如假設要弄「登入後才可見」和「不登入也可見」的畫面權限好了, 如果現在手上有 30 頁 php,那要怎麼做呢?一頁一頁加? hmm...是個方法,可是如果一個月後,權限改變了,權限種類變多了呢? 對,可以把他用 function 提取出來做一個總控制, 但還有沒有其他也不錯的方式呢? 有的,打造 router 和 dispatcher,用更彈性的方法來處理和維護這一段 (細節我就不講了) 所以這些東西是從根本上就完全不一樣的思維, 在你真正需要它之前,你都很難體認到它帶來的好處。 另外關於效能抉擇的問題,嗯,這又是另一個很大的議題了…(遠目 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.180.105.248
MagicMomo19:純推好文 ! 09/05 23:55
cruisel:小弟目前也正在學習物件導向,推版大觀念! 09/06 14:35
kaiyuegg:推好文~! 09/28 10:36