Herkes için (?)
Bölüm: Java EE
Okuma süresi: 5min
Yazar: Destan Sarpkaya
Oluşturulma: 2014-09-23
2 Son güncellenme: 2014-09-23
Sürüm: v1
Lisans: Creative Commons License Attribution-ShareAlike 4.0 International

MVC Nedir | JavaEE Uygulama Mimarisi

Hangi dili kullanırsak kullanalım büyük ölçekli bir uygulama geliştirirken projenin yapısını yönetilebilir, genişletilebilir ve anlaşılabilir tutmak isteriz. Uygulama mimarisini bu isteklere yanıt verebilecek biçimde seçmek isteriz. Bu kaygılar bizi (özellikle web uygulamalarında) MVC kavramına götürür.

Bu yazıda, neredeyse herkesin o veya bu biçimde duyduğu MVC kavramını diğer mimari yapılarla ilişkilerini de anlatarak açıklamaya çalışacağız.

MVC Nedir?

MVC (Model-View-Controller) bir tasarım deseni (design pattern) veya bir mimari desendir (architectural pattern). Bazı kaynaklar tasarım deseni bazı kaynaklar mimari desen demekte ancak bu konuda kesin bir kanı ve genel geçer doğru bir tanım yoktur. Kesin doğru aramak yerine MVCnin geliştiriciye ne öğütlediğini öğrenerek çıkarım yapmak en yararlısı olabilir.

MVC İlk Nasıl Çıktı?

Çok ayrıntıya girmeden, MVC kavramının 1978’de Xerox PARC şirketinde çalışan Trygve Reenskaug tarafından ortaya atıldığını[1], ilk olarak Smalltalk-80 programlama dili ile kullanılmaya başlandığını not edelim.

MVC kavramı ilk ortaya çıktığında bizim şimdi masaüstü uygulamaları olarak tanımladığımız uygulamalar için düşünülmüştü.

MVC kullanıcının kafasındaki model (mental model) ile bilgisayardaki model arasında bağ kurma sorununa çözüm olarak önerilmiş[1]. Bu sorun uygulamalar ne kadar gelişip değişirse değişsin günümüzde hala mevcut. Bu nedenle bu ortak sorunun çözümü olan MVC kavramı 35 yıl önce ortaya atılmasına ve şimdiki web uygulamalarından çok farklı uygulamalar için tasarlanmasına karşın, zamanla evrimleşip gelişerek günümüzde vazgeçilmez bir mimari kavram olarak karşımıza çıkıyor.

MVC Nasıl Çalışır?

MVC kavramı ile geliştirilen uygulamalar belli sorumlulukları uygulama içinde paylaştırırlar.

Model: Uygulama domainindeki verileri ve verilerin değişimini yönetir

View: Modellerin yani verilerin kullanıcıya UI üzerinden gösterilmesini yönetir

Controller: Kullanıcı girdilerine (input) göre modelde değişiklik yapar ve değişen modele göre viewi günceller

MVC kavramının kesin bir tanımı, bir standartı olmadığı için birkaç çeşit uygulaması vardır. Örneğin yukarıdaki tanımlar pasif view kullanan bir MVC kavramını tanımlar. Bu kullanımda viewı güncellemek controllerın sorumluluğudur.

Başka bir kullanımda viewı güncellemek modelin sorumluluğu olarak tanımlanabilir. Kullanılan tanımlar diller arasında hatta aynı dildeki uygugulama çatıları (framework) arasında bile değişik olabilir.

3 Katmanlı Mimari

Model 1 ve Model 2

Model 2 ve MVC İlişkisi

Spring MVC

Kaynaklar

  1. Trygve Reenskaug kişisel sayfası

« Tutoriallara geri dön

| Tags: javaEE, spring, tasarım desenleri, and uygulama mimarisi
comments powered by Disqus