我們正在開發一個代碼量很大的PHP5項目,並且在上週我開發了一個RESTful API的PoC。我們正在將模型類與業務類分離。業務邏輯應該與模型分開嗎?
試圖實現CRUD功能,我發現,直接對模型實施CRUD將是非常直接的,而針對業務邏輯實施它卻不是,因爲它的功能特定於當前存在的視圖及其界面沒有提供我實施API所需的通用數據訪問模型。
想到這裏,下面的問題來到我的腦海:
什麼是與數據進行交互的最佳方式,保持模型和保持模型沒有按」功能的靈活性現在不在乎(比如在更改電子郵件地址時發送帶有激活鏈接的郵件)?
以前用django工作過很多,其中大多數業務邏輯都是在模型中實現的,爲什麼要保持業務邏輯分離?你有沒有現實生活中的例子?這有什麼問題解決,如果有的話?
一些可能的解決方案來我的腦海裏,太:
- 把整個業務邏輯到模型中。在調用save方法之後/之前檢查哪些字段已更改。
- 使用觀察者模式通知業務對象模型中的變化並直接與模型進行交互。
你認爲什麼是正反兩面,你會怎麼做?
在MVC中,模型是不是數據庫(或其他一些持久性)。 MVC中的模型是解決業務問題的重要算法。通常情況下,模型通常與@Luc Franken通過數據訪問層(即網關,數據訪問,活動記錄和/或數據傳輸對象)寫入數據庫進行通信。 – orangepips 2012-07-22 16:50:47