Farklı diller / çerçeveler farklı MVC yaklaşımlarına sahip olduklarından, cevap kullandığınız dile / çerçeveye bağlı olsa da bu oldukça garip.
Genelde, bir denetleyiciyi diğerinden bir denetleyiciyi kullanmayacaksınız.
Kontrolörler genellikle MVC çerçevesi tarafından kullanılması amaçlanan bir türün sonucunu döndürür. Bu sonuç, arayan olarak ihtiyaç duymadığınız (görünümün adı gibi) pek çok bilgiyi içerir ve ilginizi çekebilecek bilgileri almayı her zaman kolaylaştırmaz (sizin durumunuzda model, doğru tahmin edersem).
Denetleyicilerin iş kodundan başlatılması kolay değildir, çünkü genellikle HTTP isteği ve içeriği hakkında bir miktar bilgiye ihtiyaç duyarlar. Tüm bu bilgilerin MVC çerçevesi tarafından iletilmesi beklenmektedir.
Daha da önemlisi, iki denetleyicide bir grup arama sonucuna ihtiyacınız varsa - biri son kullanıcıya sonuçları gösteren, diğeri istatistik üreten başka bir şey ise, arama mantığını iş katmanınıza koymanız (ilk başta olduğu yer), bu arada), ve kontrol cihazlarınızı mümkün olduğunca küçük tutun.
MVC'de bir kontrolörün rolü, süreci düzenlemektir:
- İsteğin ilgili girişini al,
- Validatorlara girişi doğrulama / temizleme görevi verme yetkisi verilmesi,
- İlgili iş katmanı yöntemlerini çağırın,
- MVC çerçevesine ortaya çıkan modeli ve görüşü verin.
Bir denetleyicinin rolü, iş mantığını ele almak değildir.
Kod iş katmanına taşındıktan sonra, bir denetleyicinin diğerinden kullanılmasının aksine, net ve anlaşılır bir şekilde yeniden kullanılabilen bir arama arayüzü sağlayabilirsiniz.