Esto es bastante extraño, aunque la respuesta depende del lenguaje / marco que utilice, ya que los diferentes lenguajes / marcos tienen diferentes enfoques de MVC.
En general, no utilizará un controlador de otro ya que:
Los controladores generalmente devuelven un resultado de un tipo destinado a ser utilizado por el marco MVC. Este resultado contiene mucha información que usted, como llamante, no necesita (como el nombre de la vista), y no siempre facilita el acceso a la información que le puede interesar (en su caso, el modelo, si me parece bien).
Los controladores no son fáciles de inicializar desde el código comercial, ya que a menudo necesitan cierta cantidad de información sobre la solicitud HTTP y el contexto. Se espera que toda esta información sea transmitida por el marco MVC.
Más importante aún, si necesita un montón de resultados de búsqueda en dos controladores, uno que muestra los resultados al usuario final, otro que genera estadísticas, simplemente coloque la lógica de búsqueda en su capa empresarial (donde pertenece en primer lugar, por cierto), y mantenga sus controladores lo más pequeños posible.
La función de un controlador, en MVC, es organizar el proceso:
- Obtenga la entrada relevante de la solicitud,
- Delegar a los validadores la tarea de validar / desinfectar la entrada,
- Llame a los métodos relevantes de la capa empresarial,
- Dele al marco MVC el modelo resultante y la vista.
La función de un controlador no es tratar con la lógica empresarial.
Una vez que el código se trasladó a la capa empresarial, puede proporcionar una interfaz de búsqueda que puede ser reutilizable de una manera clara y directa, a diferencia de un controlador que se utiliza desde otro.