2010-05-31 106 views
8

相當直接的問題:Codeigniter使用什麼設計模式?

我知道Codeigniter是一個MVC框架 - 但是Codeigniter使用什麼設計模式?

從第一眼看起來好像門面,但我可能是錯的。

編輯:

也許我應該說明笨對於那些誰不使用它。
在Codeigniter中,您有一個Controller和Model的概念,每個Controller都有自己的單獨文件夾。在每個文件夾中創建一個文件: cart.php:

<?php 

class Cart { 
//... 
} 
?> 

那麼你也可以有一個模型:

<?php 

class User { 
    function login(){...} 
} 
?> 

在類車的,你可以在使用的登錄功能用戶只需使用$ this-> user-> login()

我覺得這很有趣,因爲框架構成了User對象的一個​​對象,程序員卻沒有。

回答

6

在笨你有 控制器和模型,其中每個人都有 自己單獨的文件夾的概念。

他們建立自己的主要路由器類,使得其搜索相應的控制器和模型文件,它甚至可以去遞歸。這與任何設計模式無關,它只是一個文件夾組織。

我覺得這很有趣,因爲在 框架使得用戶 對象的對象和程序員沒有。

是的,他們已經創造了很多現成的東西,隨時都可以使用。類用於控制整個用戶系統。

基本上,就像你說的,主要使用的設計模式是MVC的東西其餘是由不同的核心類特定任務控制。

+0

我會在Codeigniter上貼上MVC - 但我沒有在http://en.wikipedia.org/wiki/Design_pattern_(computer_science)上列出 - 我認爲它應該。雖然我仍然認爲它在Facade之後有點模仿,因爲不是有$ user-> login(),而是有一個基本上具有子類的類......它恰好是調用類。 – 2010-05-31 22:19:22