MVC是一個很好的模式,但有時候真的無聊到把一切都變成控制器的方法。控制器不斷髮展,需要時間來擺脫成千上萬的代碼行。有些人強烈建議儘可能將模型放入模型中,但我更願意保持模型清潔(我沒有將面向控制器的方法放入模型中)。「每個動作/頁面一個類別」的任何模式?
的想法是把每個控制器的行動統一到自己的類...
class Post_Add {}
class Post_Remove {}
class Post_View {}
所有的代碼,這是所有操作類我們投入class Post_Parent
並通過它的實例付諸行動構造常見。
所以,調用動作看起來像...
$parent = new Post_Parent();
$action = new Post_Add($parent);
$action->run();
那麼,我們有什麼?
- 每個動作是分隔的類,所以 因爲我們希望我們可以添加儘可能多的私有方法, 瓦爾,常量。
- 所有常見代碼被分爲 父類(
Post_Parent
),並且可以從操作類訪問 。它 非常適合舉辦ACL等.-
這個想法值得一住嗎?有沒有類似的設計模式?
謝謝。
請問,你能告訴我在哪裏可以閱讀關於「一般問題的封裝」?說「封裝的一般問題」,你的意思是我應該進行更多的重構,並將多個方法放入分離的類中,以便在所有控制器中共享。 – Kirzilla 2010-09-21 10:10:41
我建議閱讀以下兩個鏈接作爲入門教材:http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)和http://en.wikipedia.org/wiki/Solid_(object-oriented_design )。然後,我會鼓勵你閱讀更多關於SOLID原則的內容:http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod – 2010-09-21 11:23:30