Điều này khá lạ, mặc dù câu trả lời phụ thuộc vào ngôn ngữ / khung bạn sử dụng, vì các ngôn ngữ / khung khác nhau có cách tiếp cận khác nhau của MVC.
Nói chung, bạn sẽ không sử dụng một bộ điều khiển từ một bộ điều khiển khác kể từ:
Bộ điều khiển thường trả về kết quả của một loại dự định sẽ được sử dụng bởi khung MVC. Kết quả này chứa rất nhiều thông tin mà bạn, với tư cách là người gọi, không cần (chẳng hạn như tên của chế độ xem) và không phải lúc nào cũng dễ dàng truy cập thông tin mà bạn có thể quan tâm (trong trường hợp của bạn là mô hình, nếu tôi đoán đúng).
Bộ điều khiển không dễ dàng khởi tạo từ mã doanh nghiệp, vì chúng thường cần một số lượng thông tin về yêu cầu HTTP và bối cảnh. Tất cả thông tin này dự kiến sẽ được thông qua bởi khung MVC.
Quan trọng hơn, nếu bạn cần một loạt kết quả tìm kiếm trong hai bộ điều khiển, một bộ điều khiển hiển thị kết quả cho người dùng cuối, một bộ khác tạo số liệu thống kê, chỉ cần đặt logic tìm kiếm vào lớp doanh nghiệp của bạn (nơi nó thuộc về vị trí đầu tiên, nhân tiện), và giữ cho bộ điều khiển của bạn nhỏ nhất có thể.
Vai trò của bộ điều khiển, trong MVC, là phối hợp quy trình:
- Nhận đầu vào có liên quan từ yêu cầu,
- Ủy quyền cho người xác nhận nhiệm vụ xác nhận / vệ sinh đầu vào,
- Gọi các phương thức liên quan của lớp nghiệp vụ,
- Cung cấp cho khung MVC mô hình kết quả và khung nhìn.
Vai trò của bộ điều khiển không phải là để đối phó với logic kinh doanh.
Khi mã được chuyển sang lớp nghiệp vụ, bạn có thể cung cấp giao diện tìm kiếm có thể được sử dụng lại một cách rõ ràng, đơn giản, không giống như một bộ điều khiển được sử dụng từ bộ điều khiển khác.