MVC modu: Model Görünümü, mevcut ana akım mod olan kontrolcüyü kontrol etmeye çalışır ve sunucu yazılımı girişinin temel modu olarak kullanılır; ana akım çerçeve Struts 1/2 JSF Wicket ise temelde MVC modunu destekliyor.
Ancak, B/S ve İnternet uygulamalarının, Web 2.0'ın ve sosyal medya ile oyunlar gibi çok sayıda etkileşimli uygulamanın sürekli yaygınlaşmasıyla, nispeten statik MVC modu artık son derece etkileşimli ve davranış odaklı uygulamalar için uygun değildir.
DDD alan modellemesi yapıya daha fazla önem verir, varlık değeri nesnesi ve sunucusu da bir tür yapısal bölünmedir, ancak nesne görevlerinin ve davranışlarının önemini vurgulamaz ve bu nesneler ile veritabanları arasındaki tek farktır.
Tam tersine,Nesne Tasarımı: Roller, Sorumluluklar ve İşbirlikleriKitap, nesnenin aslında belirli bir rolü oynadığını ve bu rolün sorumlu olduğunu, ardından belirli bir sahne bağlamında belirli bir etkileşimli davranışın uygulanacağını önerir; bu da Jdon'da kapsamlı şekilde ele alınmıştır:
DCI, alan modeli, alan olayları için bazı fikirler
Asenkron Mimari Düşünme: Akka ile alan modellemesini uygulayın
Kitap, merkezi kontrolörlerin dört ana dezavantajını özetliyor ve MVC'nin kontrolörleri aslında bu merkezi kontrolör stiline aittir:
1. Kontrol mantığı aşırı karmaşık olabilir. Kontrolörler karmaşık olabilir ve birçok kişinin Struts'un Action kontrolörlerinde iş kodu yazması yaygındır.Tüm eylemler eylemde ve bazı eylemler neredeyse binlerce satırdan oluşur.
2. Denetleyiciler, bilgi sahiplerinin içeriğine bağımlı hale gelebilir. Denetleyiciler bilgi veri merkezlerine veya veritabanlarına bağımlı hale gelir, denetleyiciler birçok şeyi yapar, yani alan nesneleri çok az şey yapar ve kontrolör sadece sonunda ne yapmakla kalmaz, aynı zamanda stratejik şeylere de karar verir, ayrıca nasıl yapılacağı ve nasıl uygulanacağı gibi taktiksel konularla da bağlantılıdır.
3. Nesneler, kontrolörlerinin eylemleriyle dolaylı olarak bağlanabilir. Nesneler, kontrolcünün eylemleriyle dolaylı olarak birbirine bağlanır, bir nesne kontrolcüde sorgulanır, ardından başka bir nesneye kopyalanır ve iki nesne birbirine bağlanır.
4. İlginç tek iş kontrolcüde yapılıyor.
MVC'nin kontrolörü bir tür Aracı modudur, ancak aynı zamanda merkezi bir denetleyicidir; gözlemci modundan ana farktır: Aracı modu iletişimi kapsar, gözlemci merkezi olmayan iletişimi kapsarken, iletişim açısından kontrolörün de kendine özgü kusurları vardır, kolay büyük ve tam bağlı bir konsantre yapıya dönüşebilir, bunların hepsiOOTolere edilmiyor.
DCI mimarisiBu, yeni bir kavram ve yazılımı yeni bir bakış açısıyla bakıyor; bu da görev odaklı tasarımla örtüşüyor ve bu konuda haklıdırDDDGelişim ve geliştirme.
DCI, Data Context Interactions'ın kısaltmasıdır ve önemli katkısı, sadece MVC'yi reddeden, sorunlarını ortaya koyan ve alternatif önermeyen Duty-Driven Development kitabında bahsedilmeyecek sahne kavramını ortaya koymaktırDCIBu, MVC'nin alternatif mimarisidir ve DCI, aşağıdaki şekilde gösterildiği gibi (fotoğraf alınmıştır) kontrolörlerin yerine MVC'yi senaryolarla değiştirir.Orijinal İngilizce TheDCI Architecture: A New Vision of Object-Oriented Programming):
Sahne aslında MVC'deki bazı kontrolleri ve modelleri ortaya çıkarıyor ve karakter sahneleri şeklinde yeniden bir araya getiriyor. Bu, MVC modunun dikkate alınmasından tamamen farklı yeni bir açıdır ve MVC mod daha çok bu açıya daha uygundurOO。
Son zamanlarda biri bunu gündeme getirdiSahne Bağlamı, yeni bir nesne tipidir, sahne sadece değiştirilemezSOAWeb servisleri ayrıca MVC denetleyicilerinin yerini alabilir.
Kişisel olarak, yeni hiyerarşik mimarinin gelecekte böyle görünebileceğini düşünüyorum: View --> Context ---> Domain Model ---> Bileşen/Respozitory
MVC modu öldü.
|