"Merhaba, Amigo!"

"Merhaba, Bilaabo!"

"Zaten sağlam bir programcısın. O yüzden bugün MVC hakkında bir ders alacağız."

"MVC, ModelGörünümDenetleyici anlamına gelir . Bu, uygulamanın üç bölüme ayrıldığı büyük uygulamalar için bir mimari tasarım modelidir."

"İlk kısım, uygulamanın tüm iş mantığını içerir. Bu kısım model olarak adlandırılır . Uygulamanın yapmak için yaratıldığı her şeyi yapan kodu içerir. Bu kısım, diğerlerine en az bağımlı olan kısımdır."

"İkinci bölüm, kullanıcıya verilerin görüntülenmesiyle ilgili her şeyi içerir. Bu bölüme görünüm denir . Pencerelerin, sayfaların, mesajların vb. görüntülenmesini kontrol eden kodu içerir."

"Üçüncü bölüm, kullanıcı eylemlerini işleyen kodu içerir . Modeli değiştirmeye yönelik tüm kullanıcı eylemleri burada ele alınmalıdır. Bu bölüme Denetleyici denir   . "

"Bu yaklaşım, bağımsız olarak üç şey oluşturmanıza olanak tanır:  programın mantığı (model) , programın verilerini kullanıcıya görüntüleme mekanizması (görünüm) ve kullanıcı girişi/eylemleri için bir işleyici (denetleyici) ."

"Uygulamaların genellikle birkaç görünümü vardır. Bu normaldir. Excel'de aynı verileri hem sayı hem de diyagram olarak görüntüleyebilirsiniz. Oyunlarda, olayları birinci şahıs, üçüncü şahıs veya harita görünümünden ve daha pek çok açıdan görüntüleyebilirsiniz. . Bunların hepsi tek bir Model için farklı görünümlerdir ."

"Kullanıcı eylemlerine yanıt olarak modelde neyin değiştirileceğine karar veren kodun tümü, Denetleyicide toplanır . Örneğin, kullanıcı programı kapatmaya karar verirse, modelin verilerini diskteki bir dosyaya kaydetmeniz gerekir. Veya kullanıcı yeni veri girerse, onu modele eklemeniz gerekir. Model daha sonra tüm görünümleri veri değişiklikleri hakkında bilgilendirir, böylece yalnızca verilerin mevcut durumunu görüntüler."

"Tekrar söyle."

"Bir Java geliştiricisinin bakış açısından, model, görünüm ve denetleyicinin üç sınıf grubu olduğunu söyleyebiliriz; burada:"

" a)  her parçanın kendi amacı vardır;"

" b)  tek bir grubun sınıfları arasındaki ilişkiler çok güçlüdür;"

" c)  gruplar arasındaki ilişkiler çok zayıftır;"

" d)  Parçaların birbirleriyle iletişim kurma yolları sıkı bir şekilde düzenlenmiştir."

"Ve işte bunu hayal etmenin başka bir yolu:

MVC-1

"Model, sistemin en bağımsız parçasıdır . Görünüme veya denetleyiciye bağlı değildir. Model, görünümden veya denetleyici gruplarından (!) sınıfları kullanamaz."

"Görünümün birincil sınırlaması, modeli değiştirememesidir . Görünüm sınıfları, veriler veya olaylara abone olmak için modele erişebilir, ancak görünüm sınıfları, modeli değiştiremez."

"Denetleyicinin birincil sınırlaması, verileri görüntülememesidir . Denetleyici, kullanıcı eylemlerini işler ve modeli buna göre değiştirir."

"Ama neden buna ihtiyacım var?"

"Bunu şu anda kullanmıyor olman, yakın gelecekte kullanmayacağın anlamına gelmiyor. Burada bir iş bulmak için çalışıyorsun. çalışırken, çalışırken kesinlikle işe yarayacaktır."

"Sonuçta gerçek projeler ve röportajlar sizi bekliyor..."

"Şu anda burada konuşuyoruz, ama belki bir ay içinde çalışıyor olacaksın."

"Kesinlikle haklısın Bilaabo. Seni dikkatle dinleyeceğim."

"MVC modeli, uygulama mimarisinde çok yaygındır. Bunu bilmeniz gerekir, böylece modele birdenbire görünüm sınıfları eklemeye başlamazsınız çünkü böylesi daha uygun olur."

"Herhangi bir projedeki en önemli şey mimarisidir.  Bu aşamadaki göreviniz, iyi bir mimari yaratmaktan çok, başkasınınkini anlamayı öğrenmektir. Yine de bir süre büyümeniz gerekecek. Kendinizinkini yaratmadan birkaç yıl önce. Ama diğer insanların ne yarattığını anlamanız gerekiyor. Hemen."

"Bir uygulama standart bir mimari kullandığında, her şey çok daha net hale gelir. Mimariyi bildiğinizde, nesnelerin nerede olduğunu, her şeyin nasıl etkileşime girdiğini, kabaca programın nasıl çalıştığını, gerekli bir sınıfı nereye ekleyeceğinizi ve nedenini nerede arayacağınızı bilirsiniz. bir böcek."

"Ama mimariye yönelik standart yaklaşımlara aşina değilseniz, o zaman en iyi mimari bile size bir şey söylemez. Yeni bir arabaya bakan orta çağdan kalma bir köylü gibi olacaksınız. Standart bir araba."

"Anlıyorum. İlginç ders için teşekkürler, Bilaabo."

"Son olarak, kesinlikle kontrol etmeniz gereken iyi bir bağlantı:"

Ek malzemeye bağlantı