MVC Nedir?
iPad veya iPhone cihazlar için uygulama geliştirme de kullanılan bir kavram. Açılımı Model View Controller. Bir model, görünüm ve kontrolcüden oluşur. Peki bunlar nedir?
MVC düşüncesinde, programdaki tüm nesneler üç kamptan birine bölünür. Bunlar; model kampı, controller kampı ya da view kampı. Şimdi bu üç kampı tanımlayalım.
Model kampı…
Bu basit anlamda uygulamanızın ne olduğudur ama nasıl görüntülendiği değildir. Bir örnekle izah edelim. Bir bilgisayar oyunu tasarlıyorsunuz. Bunun bir uzay oyunu olduğunu düşünelim. Gemiler birbirine ateş ediyorlar, patlatıyorlar vs. Model, bu gemilerin uzayda nerede oldukları, bir silahın ne kadar hasar oluşturduğu, bir gemide hangi silahların olacağı, geminin canı gibi şeyleri içerir. Bu uygulamanızın modelidir. Bunların hiçbiri geminin şekliyle veya ekrandaki pozisyonu ile alakalı değildir. Geminin uzayda nerede bulunduğu ile ilgilidir, ekranda nerede bulunduğu ile ilgili değil. Tahmin edebileceğiniz gibi böyle bir modelin arayüzü komut satırı olacaktır. Modelin kullanıcı arayüzüyle hiçbir alakası yoktur. Bu sadece uygulamanızın ne olduğudur. Bu şekilde düşünülürse diğer uygulamalarda aradaki fark görülebilir. Bu uygulamanızın ne olduğu, nerede saklanacağı, nasıl erişileceğidir ve diğer uygulamalar bunu yapmazlar.
Controller kampı…
\”Model\” içinde tanımlanan bileşenlerin son kullanıcıya nasıl sunulacağını içerir. Controller, uygulamanızın nasıl görüntüleneceği ile alakalıdır. Bu nedenle iPad\’de iPhone\’dakinden farklı bir controller olabilir. Peki neden? Çünkü iPad daha geniş bir ekran alanına sahiptir. Belki de iPad üzerine 2 ya da 3 pencere açabilirsiniz. iPhone\’un ekranı ise çok küçüktür. Bunu oldukça verimli kullanmak istersiniz değil mi? Bilgilerinizi olabildiğince verimli bir şekilde tek pencere üzerinden iletmeye çalışırsınız. O yüzden controller cihaza özgür bir platformdur.
View kampı…
Controller\’ın hizmetçisidir. Yani controller\’ın işini yapmak için kullandığı üretken, yeniden kullanılabilir arayüz nesneleridir ve modelinizin ekrandaki görünümünden sorumludur.
Peki neden view, controller\’ın bir parçası değil? Tüm kullanıcı arayüzü burada diye diyebilirsiniz. Bunun sebebi, nesnelerin büyük çoğunluğunun view de olmasıdır. Bu nesneleri yazmanıza gerek yoktur çünkü bunlar Apple\’dan geliyor. Butonlar, kaydırma ve çevirme görünümleri, resim görünümleri vb. şeyler bunlardan sayılabilir. Dolayısıyla bunların kodlarını yazmanıza gerek kalmıyor. Çünkü bunların hepsi zaten ayrı bir kampın içinde bulunuyor. O yüzden tek yapılması gereken kamplar arasındaki iletişimi yönetmek ve başka biri Apple gibi bu kodları yazmak isterse bunlarla en iyi şekilde iletişim kurulmalıdır.