Sebenarnya lebih enak lihatnya dari segi application layering ga di MVC. basically application layering ada 3 bagian.
Presentation layer: Controller -> menerima request, dan memanggil bisnis layer untuk memproses request, dan mengembalikan hasil prosesing ke View.
Business/ Logic layer: Service -> memproses bisnis, biasanya implementasi bisnis logic. model ->data yang akan di proses
Data layer: akeses data ke data storage.
apabila bisnis diimplementasikan di controller, akan jadi masalah kalau ada tambahaan untuk versi mobilenya yang mengimplementasikan bisnis yang sama. biasanya web versi mobile punya view dan controller sendiri. ga mungkin dong bisnis logicnya diimplementasikan ulang di mobile controller.
kalau aplikasi webnya diganti jadi desktop, harus nulis ulang bisnis logicnya di controller desktop. makanya logic itu sebaiknya diimplementasikan pada service layer bukan di controller, nanti tiap controller mobile, controller web biasa, controller desktop memanggil service itu untuk memproses logic.
jadi kerjaan si controller itu cuma nangkepin data yang di kirim dari view, trus memanggil service layer.
--
Adi Gunanta Sembiring