Saya punya beberapa pertanyaan saat merancang arsitektur untuk proyek di sekitar MVC. (Ini adalah proyek C ++ / Marmalade SDK, saya tidak menggunakan kerangka kerja MVC tertentu, saya membuatnya.)
Pada beberapa artikel (seperti pada artikel Steve Burbek asli ) saya terus membaca konsep "triad MVC" yang menghalangi saya karena saya mengambil konsep ini secara harfiah. Ketika saya membacanya pertama kali tampak seperti aplikasi dibangun di sekitar "MVC triad" unit - satu untuk setiap bagian UI yang saya kira -, tapi saya menemukan ini agak tidak fleksibel dan saya pikir bukan itu cara MVC dimaksudkan untuk digunakan. Kemudian, meneliti lebih lanjut tentang masalah ini, saya menemukan beberapa contoh kopling ketat dari pengontrol dan tampilan, yaitu, hubungan 1-ke-1 - TextEditView memiliki TextEditController.
Tetapi ketika saya kembali ke proyek saya, saya menemukan bahwa mungkin berguna untuk memiliki satu pengontrol (dengan 'unit logis', seperti AddElementController) dan beberapa tampilan untuk pengontrol tertentu.
Saya jelas berpikir tentang sesuatu seperti AddElementController yang seharusnya memiliki semacam UI tab. Haruskah saya memiliki AddElementController yang memiliki AddElementTabView dan beberapa AddImageView, AddSoundView, dll untuk tab? Atau haruskah saya memiliki 'sub-controller' yang berbeda untuk setiap tampilan tab?
Singkatnya, dan mengenai pola MVC (bukan kerangka kerja X, pemahaman / implementasi pola ini), apakah benar memiliki beberapa tampilan untuk suatu pengontrol atau haruskah masing-masing pandangan memiliki pengontrol tertentu?
Juga, apakah benar menyimpan beberapa informasi status pada pengontrol atau haruskah stateless (artinya state harus ditempatkan pada beberapa model state non-domain)?
Terima kasih untuk semuanya.