14 Mart 2015 Cumartesi

MVC nedir?

MVC : Model - View -Controller nedir?

MVC bir architectural pattern yani mimari desendir.
Bir uygulamayı 3 ana katmana ayırır: model, view ve controller.

Model

Model, business yapılması için verinin şekillendirilmiş halidir.
Verileri yönetir ve gelen bilgi taleplerini cevaplar.

Model dediğimizde sökülüp-takılabilen bir paketi düşünmek gerekiyor.
Yani bir projeden alıp başka projeye aynen eklediğimizde sorunsuz şekilde çalışabilmeli.
Projeden bağımsız olmalı. Yani view ile controllerdan bağımsız olmalı.
Model paketi, entity sınıflarıve onları yöneten helper ya da utility sınıflarından oluşur.
Örneğin database crud işlemleri, kullanıcıdan gelen bilgilerin veritabanına bakarak kontrol edilmesi gibi işlemler modelde yapılır.

Burada "business" yapılır. Yani veri ile ilgili işlemler burada gerçekleşir.
Bu paketi böylece başka yerlere de taşıyarak aynen kullanabiliriz.

Model bir uygulamadaki veritabanı ile iletişim kuran sınıflar bütünüdür.

View

View dediğimizde kullanıcının gördüğü sayfayı düşünüyoruz.
UI dediğimiz user interface yani kullanıcı arayüzü burada oluşturulur.

Burada business yoktur. Sadece kullanıcıya gösterilecek ekran/sayfa oluşturulur.

Bu bir android uygulamasındaki layout dosyasıdır.
Bir enterprise web application'da JSP ya da JSF sayfalarıdır.

Controller

Controller dendiğinde aklımızda bir aracı imajı oluşmalı.
Model ile view arasındaki bağlantıyı, ya da köprüyü kuran yapıya controller diyoruz.
Bir nevi devamlı iki taraf arasında paslaşma yapar.
Fakat veritabanı ekleme/çıkarma, veritabanına bakarak kontrol yapma vb işlemleri yapmaz. Çünkü controllerın görevi sadece model ile view arasında iletişim kurmaktır. Bu tarz veritabanı işlemleri modelde yapılır.

Burada "business" yoktur. Yani veri işlenmesi yapılmaz.
Business'i yapan model ile view arawsında iletişim sağlanır.

Controller projeye bağımlıdır. Yani bir projeden söküp diğerine takamayız.

Bu bir android uygulamasındaki activity sınıfıdır.
Bir enterprise appliactionda servlet sınıfıdır.


MVC1

MVC2

MVC3


Kaynaklar

https://www.youtube.com/watch?v=eTdVkgF_Slo

https://www.youtube.com/watch?v=6EcjhVwH0Dw

https://developer.apple.com/library/mac/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html

http://martinfowler.com/eaaDev/uiArchs.html

http://blog.iandavis.com/2008/12/what-are-the-benefits-of-mvc/

http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

Hiç yorum yok:

Yorum Gönder