Ana içeriğe geç

MVC

Model–View–Controller (Model–Görünüm–Denetleyici)

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/mvc

Kısaca

MVC, uygulamayı veri ve mantık için Model, gösterim için View ve kullanıcı girdisini yöneten Controller olmak üzere üçe ayıran bir mimari desendir.

MVC nedir?

Model–View–Controller'ın kısaltması olan MVC, bir uygulamayı ayrı sorumlulukları olan üç parçaya böler. Model veriyi ve iş kurallarını tutar, View bu veriyi kullanıcıya sunar, Controller ise kullanıcı girdisini alır, Model'i günceller ve hangi View'un gösterileceğini seçer. Bu ilgilerin birbirinden ayrı tutulması kodu anlamayı, test etmeyi ve değiştirmeyi kolaylaştırır.

Tipik bir web uygulamasında GET /products/42 gibi bir istek bir controller'a ulaşır. Controller, modelden 42 numaralı ürünü veritabanından yüklemesini ister, sonucu HTML sayfasını oluşturan bir görünüm şablonuna aktarır. Sayfa tasarımı değişirse yalnızca view düzenlenir; fiyatlandırma kuralları değişirse yalnızca model.

Restoran güzel bir benzetmedir: garson siparişinizi alan controller, tariflerine göre yemeği hazırlayan mutfak model, tabakta önünüze gelen yemek ise gerçekten gördüğünüz view'dur. Birçok sunucu taraflı web framework'ü MVC'nin ya da ona çok yakın bir çeşidinin etrafında kurulur.

MVC, sıklıkla MVVM (Model–View–ViewModel) ve MVP (Model–View–Presenter) gibi ilgili desenlerle karıştırılır. Bunların hepsi veriyi sunumdan ayırma amacını paylaşır ama view ile mantığın nasıl iletişim kurduğu bakımından ayrılır. MVC ayrıca tek bir uygulamanın içindeki kodu düzenler; bu, bir sistemi ayrı servislere bölmekten farklıdır.

Bir bakışta

Bir MVC isteği: kullanıcının GET /products/42 isteği controller'a ulaşır; controller modelden 42 numaralı ürünü yüklemesini ister, ürün verisini alır, view'a aktarır ve view'un oluşturduğu HTML sayfası kullanıcıya döner.GET /products/4242 numaralı ürünü yükleürün verisiveriyi aktarHTML sayfasıKullanıcıControllergirdiyi işlerModelveri + iş kurallarıViewkullanıcının gördüğü
Her parçanın tek bir işi vardır: controller koordine eder, model veriye ve kurallara sahiptir, view ise yalnızca sunar.

Önemli noktalar

  • Model: veri ve iş mantığı.
  • View: kullanıcının gördüğü şey.
  • Controller: girdiyi işler, model ile view'u birbirine bağlar.
  • Bu ilgilerin ayrılması kodun test edilmesini ve bakımını kolaylaştırır.
  • MVVM ve MVP, aynı fikrin yakın çeşitleridir.

Örnek

Sade JavaScript ile MVC'nin üç parçasıjavascript
// Model: data and business rules
const ProductModel = {
  findById: (id) => ({ id, name: "Keyboard", price: 49 }),
};

// View: turns data into HTML
const productView = (product) => `<h1>${product.name}</h1><p>Price: ${product.price}</p>`;

// Controller: handles the request and connects the model and the view
function showProduct(request) {
  const product = ProductModel.findById(request.params.id);
  return productView(product);
}

Sık sorulan sorular

MVC ile MVVM arasındaki fark nedir?

MVC'de controller girdiyi işler ve model ile view'u günceller. MVVM'de ise ViewModel, view'un doğrudan bağlandığı veri ve komutları sunar; bu yaklaşım veri bağlama (data binding) olan arayüz framework'lerinde yaygındır.

MVC hâlâ kullanılıyor mu?

Evet. Birçok sunucu taraflı web framework'ü MVC üzerine kuruludur ve veriyi, sunumu ve girdi işlemeyi ayırma yönündeki temel fikri modern ön yüz framework'lerinin çoğunu etkiler.

MVC bir tasarım deseni mi yoksa mimari mi?

MVC, bütün bir uygulamanın yapısını belirlediği için genellikle mimari desen olarak tanımlanır. Kendi içinde çoğunlukla Observer ve Strategy gibi daha küçük tasarım desenlerinden oluşur.

Sık karşılaştırılanlar

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar