Bu, bir elma ve bir elma çekirdeği arasındaki farkın ne olduğunu sormak gibidir. Bu iki mimari birbirinin yerini tutmaz. Bence daha doğru bir görüş, 3 katmanlı mimarinin MVC'yi arttırması .
MVC Mimarisi
Modeller: Bunlar uygulamanızdaki "şeyleri" temsil eder. Daha sonra açıklayacağım gibi, bu katman son yıllarda biraz bulanıklaştı.
Görünümler: Kullanıcı arayüzü. Kullanıcının etkileşimde bulunduğu şey.
Denetleyiciler: Kullanıcıya ve model katmanındaki değişikliklere yanıt veren programlama kodu
3 Katmanlı Mimari
3 katmanlı mimari ile farklı sorumluluklara sahip katmanlarınız olur.
Kullanıcı Hizmetleri: (veya genel olarak "hizmetler") Bu katman daha çok "model" katmanının alınmasını ve değiştirilmesini koordine etmekle ilgilidir. Karmaşık, çok adımlı eylemler burada gerçekleştirilir
İş Katmanı: Bu, programlama koduna kazınmış iş kurallarını gösterir. "İş" in istediği şey bu katmana uygulanır.
Veri Erişim Katmanı: Kalıcı bir veri deposuna erişmekten sorumlu bir veya daha fazla sınıf.
MVC ile kesişen 3 katmanlı mimarinin tek bölümü "İş Katmanı" dır. MVC'deki "Modeller" ve 3 katmanlı mimarideki "İş Katmanı" aynı hedefe ulaşmaya çalışıyor.
MVC'deki "M" bulanıklaştı
MVC'deki "model" katmanı son yıllarda genişledi. Gördüğüm kadarıyla, iki, muhtemelen üç çeşit model var:
Etki Alanı Modelleri: Bunlar, "İşletme" nin önem verdiği "şeyleri" temsil eder - İşletme Alanı. Bu sınıflar, iş kurallarını uygulamak için veriler ve bu veriler üzerinde çalışan tüm prosedürleri içerir. Etki Alanı Modelleri sıklıkla bir veritabanındaki tablolara bağlanır. Bu, 3 katmanlı mimarinin "İş Katmanı" na uygun görünüyor.
Modelleri Görüntüle: Bunlar, alan modellerinden verileri görünüme daha lezzetli bir şeye masaj yapmak için kullanılan sınıflardır. Bu, 3 katmanlı mimaride hiçbir yere uymuyor çünkü görünüm modelleri iş mantığı uygulamadığı gibi herhangi bir hizmet veya veri erişimi de sağlamıyor.
İş Modelleri: Karmaşık uygulamalarda, Etki Alanı Modelini İş Mantığından ayırma ihtiyacı ortaya çıkar. İş Modelleri, iş kurallarını uygulamak için bu veriler üzerinde çalışan veriler ve prosedürler içerir ve Etki Alanı Modelleri, yalnızca verileri tutan ancak davranış içermeyen nesneler olan "Mülk Torbaları" na devredilir. Etki Alanı Modelleri, veritabanı ve uygulama arasında başka bir Veri Aktarım Nesnesi biçimi haline gelir.
MVC'de hiçbir yerde veri erişimi söz konusu değildir. Bazı durumlarda, veri erişiminin MVC'nin "model" katmanına ait olduğunu göreceksiniz. Gerçekten bütün bir uygulama oluşturmak için 3 katmanlı mimarinin MVC ile eşleştirildiğini görüyorum . Biri diğerini arttırır veya geliştirir:
- Modeller
- Etki Alanı Modelleri (MVC / 3 katmanlı)
- Modelleri Görüntüle (MVC)
- (isteğe bağlı) İş Modelleri (MVC / 3 katmanlı)
- Görüntüleme Sayısı (MVC)
- Kontrolörler (MVC)
- Veri Erişimi (3 katmanlı)
- Hizmetler (3 katmanlı)
Bazı kavşaklar vardır, ancak bunlar büyük ölçüde ayrıdır ve birlikte daha büyük bir sistemin çeşitli bileşenlerini ayırmak ve izole etmek için kullanılır.