2010-03-04 67 views
3

只是關於MVC開發中最佳實踐的一個簡短問題。codeigniter最佳實踐 - 多個模型

假設我有兩個控制器(cont1,cont2),每個控制器都使用一個單獨的模型model1 & model2。

所有文件都很複雜,模型包含數十種方法。

說,我完成了第一個控制器的開發,並且正在處理第二個控制器的工作。我需要在model2中創建一個與model1中的方法完全相同的方法。這只是一個很小的方法,例如,可以獲得某種類別的列表。

什麼是最好的工作方式 - 我應該複製方法並將其包含在我的模型2中,還是應該從模型1中檢索它?

合理的事情就是,從MODEL1得到它,但我不知道這是否會影響到執行時間,因爲它會加載兩個模型..

我將不勝感激一些反饋

感謝 ķ

回答

3

加載第二個模型將不會對執行時間產生顯着影響。這可能是一條路。

此外,每個模型應該封裝特定「對象」的數據邏輯。你可以將每個模型想象成一個數據庫表。所以你可能不想在兩個不同的地方使用相同的方法 - 如果你這樣做,你可能要考慮創建一個插件。

1

也許你真正需要的是第三種模式。如果你有一種方法被用於許多/所有的模型,它確實可能是一個獨特的數據集,它將保證它自己的注意力。此外,您可以防止加載多個「大型」模型,而是擁有1個大型和1個小型模型。

0

我遇到了同樣的情況。我所做的是在每個模型中加載代碼化對象,參考文獻。然後我可以加載其他模型,庫,幫手,甚至配置項到我的模型中。它有助於保持模型代碼不在控制器中,我認爲這是最佳實踐。始終保持乾爽(不要重複自己)。