Ini agak aneh, walaupun jawabannya tergantung pada bahasa / kerangka kerja yang Anda gunakan, karena bahasa / kerangka kerja yang berbeda memiliki pendekatan MVC yang berbeda.
Secara umum, Anda tidak akan menggunakan satu pengontrol dari yang lain karena:
Pengendali biasanya mengembalikan hasil dari jenis yang dimaksudkan untuk digunakan oleh kerangka kerja MVC. Hasil ini mengandung banyak informasi yang Anda, sebagai penelepon, tidak perlu (seperti nama tampilan), dan tidak selalu membuatnya mudah untuk mendapatkan informasi yang mungkin menarik bagi Anda (dalam kasus Anda, model, jika saya kira benar).
Pengontrol tidak mudah diinisialisasi dari kode bisnis, karena mereka sering memerlukan sejumlah informasi tentang permintaan HTTP dan konteksnya. Semua informasi ini diharapkan akan diteruskan oleh kerangka kerja MVC.
Lebih penting lagi, jika Anda memerlukan banyak hasil pencarian di dua pengontrol — yang menunjukkan hasil kepada pengguna akhir, yang lain menghasilkan statistik, cukup letakkan logika pencarian di lapisan bisnis Anda (di mana ia berada di tempat pertama, ngomong-ngomong), dan pertahankan pengendali sekecil mungkin.
Peran pengontrol, dalam MVC, adalah mengatur proses:
- Dapatkan input yang relevan dari permintaan,
- Mendelegasikan kepada validator tugas untuk memvalidasi / membersihkan input,
- Sebut metode lapisan bisnis yang relevan,
- Berikan kerangka kerja MVC model yang dihasilkan dan tampilan.
Peran pengontrol bukan untuk berurusan dengan logika bisnis.
Setelah kode dipindahkan ke lapisan bisnis, Anda kemudian dapat menyediakan antarmuka pencarian yang dapat digunakan kembali dengan cara yang jelas dan mudah, tidak seperti satu pengontrol yang digunakan dari yang lain.