MVC Nedir?

mvc

MVC nedir?

MVC (Model-View-Controller), yazdığımız uygulamanın iş mantığı ile (business logic) kullanıcı arayüzünü birbirinden ayrıştıran, uygulamanın farklı amaçlara hizmet eden kısımlarının birbirine girmesini engelleyen yazılım mimarisidir.

Kodun farklı amaçlara hizmet eden yapılarını birbirinden ayırarak, kodu daha rahat geliştirilebilir ve test edilebilir (yani daha az hata çıkartma potansiyeline sahip) hale getirmiş oluruz.

Model

  • Uygulamada kullanılan verileri temsil eder ve verilerin işlenme mantığının saklandığı kısımdır. (Verilerin validasyonu burada yapılır)
  • Genelde verilerin veritabanı (veya XML gibi benzer bir yere) kaydedilmesi ve kayıtlı yerden alınması işlemleri yine burada olabilir. (Genelde dedim, şu an detaya girmeyeceğim. Daha sonraki yazılarda bu konuyu detaylıca inceleyeceğim.)

View

  • Basitçe, uygulamanızın kullanıcılarınızın gözüyle gördüğü kısmıdır, arayüzdür.

Controller

  • Model ve View arasında getir götür işlemlerini gerçekleştirir.
  • Kullanıcıların View üzerinden gerçekleştirdiği işlemlerle alınan veriyi Model’e taşır, Model’den aldığı veriyi View üzerinden kullanıcıya gösterir.
  • 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.

MVC Nedir?

 

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?

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

Sadede gelirsek, 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 View yapımızda ihtiyaç duyduğumuz parçaları, başka projelerde de tekrar kullanılabilir hale getirmiş olduk. Sonuçta, yazılım geliştirmede yegane amacımız “hatadan uzak olmak” ve “zamandan tasarruf etmek”.

 

TEST