Devletler popüler bir iman / paradigma var:
Thin controllers, fat models.
Bu ne demektir, denetleyici tek emin eylemleri modellerinin durumunu değiştirmek ve karşılığında doğru görünümü hizmet yapmak için yürütmem yapıyor sorumlu olmasıdır. Bu düşünceyle, doğrulama modellerin meydana gelmelidir. Ama ... bir dakika boyunca tutun. Modelleri necceseraly 1 katmanlı tabakalar değildir.
. I (projenin ölçeği bunu doğrular varsa) arasındaki NET programcıları aşağıdaki kurulum (veya benzeri) oldukça yaygın bir uygulama olduğuna inanıyorum:
Controller
-> ServiceLayer
-> Repository
-> DataObject
Ve ben de bu kurulum daha fazla gibi başlıyorum. Ayrıca, ben bu kurulum da bir Zend Framework ortamında çok yapılabilir inanıyorum.
Terim Modeli biraz muğlak bir terim olduğunu. Yukarıda size Model katman olarak son üç katmanları düşünebiliriz. Ne üç tabaka temsil aşağıdadır:
- ServiceLayer:
Responsible for business logic. In other words: retrieving Dataobjects (Models) from the repository, tying Models together, AND validating Models before storing them, mailing a user, etc..
- Repository:
Some type of persistence mechanism (like a Database), that serves DataObjects to the service layer, and stores DataObjects back in the persistence mechanism (after the service layer validated them)
- DataObject:
You might consider this the actual Models. Preferably DataObjects have common interfaces (independant of the Repository that is), so that Repositories are interchangeable. In other words, when the repository changes from a database to an XML file from some webservice, the DataObject still has the same interface the service layer and ultimately the view can work with.
Umarım bu mantıklı. Bu temelde şu anda bir daha katmanlı MVC kurulum benim anlayışım budur. Herkes hissederse ben karışık şeyler beni düzeltmek için çekinmeyin var.
Tüm projelerin böyle bir katmanlı kurulum paye olduğunu, ancak unutmayın. Küçük projelerde belki de sadece 1 katmanlı Model katman ile yapabilirdi. Bu durumda, yine de Doğrulama Modelin Sorumluluk olmalıdır. Denetleyicisi (sadece eylemler aracılığıyla bir araya Model devleti ve Görüntüleme bağlama için) ince olmalıdır.