MVC Mimarisi Nedir?

MVC Mimarisi Nedir?

Merhabalar ,bu makalemizde sizlere MVC Yapısının nasıl işlediğini nedir nasıl yapılır, önemli noktalar nelerdir ve tarihçesi hakkında bilgileri derledim.

MVC nedir?

MVC bir “mimari desendir. Model-View-Controller kelimelerinin baş harflerinden oluşur.MVC, Model View Controller olarak kısaltılmıştır, özellikle web uygulamaları geliştirmek için oluşturulmuş bir tasarım modeli. Adından da anlaşılacağı gibi üç ana bölümü vardır. Geleneksel yazılım tasarım modeli bir “Girdi - Süreç - Çıktı”.MVC ASP.NET ile özdeşleştirilse de ilk olarak 1979 yılında ortaya çıkmıştır. Günümüzde MVC denilince ilk akla gelen Microsoft’un geliştirdiği ASP.NET MVC Framework olmasının nedeni web projeleri için yapısının uygun olmasıdır.

MVP (Model View Presenter )Nedir ?

Şimdi yukarıda yazdığımız katmanları inceleyelim;

Model
Uygulamada kullanılan verileri temsil eder ve verilerin işlenme mantığının saklandığı kısımdır.Adından da anlaşılacağı üzere veri yönetimi burada yapılıyor. Burayı salt veriyi temsil eden model sınıfları olarak görmemeliyiz; model katmanı veriye erişim sınıfları ve iş mantığını da barındırır. MVC’den farklı olarak model, view’i güncelleyemez; ikisi arasında direkt etkileşim yoktur.

View

Basitçe, uygulamanızın kullanıcılarınızın gözüyle gördüğü kısmıdır, arayüzdür.Uygulamanın arayüz yapılarını (layout, button, edittext vs) barındırır, bunun yanında kullanıcıdan gelen hareketleri (click, scroll vs) presenter’a iletir. Android’de view interface’lerini activity ve fragment’lar implemente eder böylece android geliştirmede en sık karşılaşılan god objectten korunmuş olur.

Controller: Model ve View arasında getir götür işlemlerini gerçekleştirir.MVC yapısında ana mantık Model ve View yapısının ayrılmasıdır. Bu iki yapı arasındaki haberleşmeyi sağlayan köprüye Controller diyoruz.Projedeki tüm işlemlerin (veritabanı işlemleri, hesaplamalar, veri aktarımı) gibi işlemlerin yapıldığı kontrol bölümüdür. Controller ayrıca model ve view arasındaki veri akışını da kontrol eder.

Presenter
MVP kalıbının kalbinde yer alır, diğer modülleri koordine eder. Genelde model’den hizmet alıp view’i günceller.

Uygulamanın bu yönleri:

· İş mantığı

· UI Mantığı

· Giriş mantığı

Ancak bu yönler veya arasında bir bağlantı vardır. Bu modele göre, bir öğenin başka bir yere bağlanmalı veya bağlantılı olması gerekir. UI mantığı, görünümü veya ön ucuyla ilgilenir. Giriş mantığı denetleyiciyle ilgilenir. Son olarak, iş mantığı bir çözüm modeliyle ilgilenir. Bu gevşek bağlı öğe, geliştiricilerin herhangi bir sürümü oluştururken karmaşık çözüme yardımcı olur. Kullanıcıların bir yolculuğunda belirli bir unsuruna odaklanmasına yardımcı olur. İş ile çalıştığınız bir senaryo alın; Bununla başa çıkabilir ve görünüm mantığına bağlı kalmadan iş mantığı oluşturmaya odaklanabilirsiniz.

MVC Mimarisi Örneği

MVC'nin Tarihçesi

MVC, 1970 ortalarında Xerox Palo Alto Araştırma Merkezi’ni (PARC) ziyaret ettiğinde Dr. Trygve Reenskaug tarafından Smalltalk-76 programlama diline tanıtıldı. Daha sonra uygulama Small-Talk’un diğer sürümlerinde popüler oldu. Daha sonra 1988 yılında, “The Journal of Object Technology (JOT)” daki makaleler, MVC’nin tüm resmini kabul görmüş bir kavram olarak ortaya koydu.

MVC Mimarisini Kullanmanın Yararları

· Herhangi bir kontrolördeki ilgili eylemlerin mantıksal kümelenmesi MVC aracılığıyla sağlanabilir.

· Çeşitli geliştiriciler, aynı uygulama denetleyicisi, modeli ve görünümleri parçası gibi farklı parçalar üzerinde aynı anda çalışabilir.

· MVC’de modeller çok sayıda görünüme sahip olabilir.

Peki neden MVC mimarisini kullanmalıyız?

Aslında başta bundan söz etmemiz gerekirdi, ancak MVC nedir tam bilmeden MVC’nin yapısı hakkında konuşarak sebeplerini açıklamak çok anlaşılır olmayacağından bu şekilde bir sıra izlemek daha iyi oldu.

İyi de bu bilgi gerçek hayatta ne işime yarayacak der gibisiniz ?

Asıl olaya gelirsek özetle , MVC sayesinde Model ve View yapısını ayrıştırmış oluyoruz.

Böylelikle yarın bir gün uygulamamızın görünümünü değiştirmek durumunda kaldığımızda “yalnızca” görünümle uğraşmamız gerekecek. İç içe geçmiş, spagetti bir kodla uğraşmak durumunda kalmış olsaydık, sadece görünümü değiştirmek isterken uygulamanın “işleyişini” de değiştirmemiz gerekecekti. (Hatta bunu yaparken işleyişi de yanlışlıkla bozabilirdik)

Ayrıca, bu ayrıştırma sayesinde Model ve Görüntüle yapmak ihtiyaç duyduğumuz parçaları başka projelerde de tekrar hale getirmiş olduk. Sonuçta, yazılım geliştirmede yegane amacımız hatadan uzak olmak ve zamandan tasarruf etmek.

Önemli noktalar

  • Controller için sadece aracı görevi görüyor. İş mantığı Model'de, görsel mantık View'da olmalı, Controller sadece haberleşmeyi sağlamalı. Controller'a, Model'in ve / ya View'ın sorumlulukları yüklenirse MVC kullanmanın hiçbir anlamı yok.
  • Hakkında bahsettiğimiz sebepten ötürü Fat Model , Skinny Controller yapısını kurgulamamız lazım. MVC kullanmamızın Algoritmayı Controller'a sıçratırsak hiçbir kazancı kalmıyor.
  • Pek çok MVC nedir makalesi Web tabanlı projelerden örnek verse de, Masaüstü / Mobil uygulama geliştirirken de MVC kullanılabilir. Zira MVC bir mimari biçimdir. (Örneğin iOS geliştiriciler iPhone uygulaması geliştirirken MVC modelini kullanma)

buraya kadar okuduysanız ve yararlı bulduysanız daha fazla kişiye erişebilmesi için beğenilerinizi bekliyorum…


 Güncellendi: Temmuz 30, 2021