我有以下的控制器類:MVC - 創建一個新的控制器VS創建一個新的方法
SchoolController extends Controller:
// Mainly for AJAX requests
+ searchSchoolDataAction()
+ searchGradeDataAction()
+ searchPeriodDataAction()
// Entry point for a school website
+ schoolAction(shortName)
// Pre-enrolment process users from a certain school can perform
+ startPreEnrolmentAction(shortName)
+ preEnrolmentStudentAction(school)
+ preEnrolmentTutorAction(school)
等。
現在。這是一個衆所周知的原則,我們應該保持控制器很薄,並且模型很厚。此外,管制員還應遵循單一責任原則。而我的控制器一直在增加很多的重量。所以,這裏有個問題:關於MVC和OOP的最佳實踐,我應該何時創建一個新的控制器,何時應該向控制器添加一個新的方法?此外,什麼是控制器方法的一個好例子,還是這個東西留給程序員呢? (如果是後者,這聽起來有點違反直覺,因爲這是一個需要遵循的原則,但我不確定。)預先感謝您。
「注意:服務層是您的控制器唯一的網關和公衆面孔。」這意味着控制器不應該看到模型,而應該看到模型的服務。它是否正確?如果是這樣,這非常好地解釋了控制器方法應該做什麼(即使這不是我所問的,但你解決了我的另一個疑問)。 現在,至於其餘的答案... 1網頁= 1方法。何時添加新的控制器? 1個控制器= 1個班級,或1個控制器=一些班級? –
在服務層中所有的數據模型對象,映射器對象和業務邏輯都被實例化。簡單地說,服務層可以與其他層進行通信,但控制器只訪問服務層。 –
您的控制器應該是域特定的。例如,如果您正在創建博客,則所有與博客有關的方法都將寫入博客控制器中。注意:控制器應該是特定於域的,它有助於應用程序的可維護性。你應該學習「領域驅動的應用程序」 1控制器= 1類,或1控制器=一些類。兩者都是對的,這取決於你的應用需求。 –