SORU
22 Temmuz 2010, PERŞEMBE


Anlayış MVC Deseni

Bazı sorunlar MVC Deseni anlama yaşıyorum. İş mantığından GUI ayrıştır için çalışıyoruz anlıyorum, sorunları nasıl anlamakta güçlük çekiyorum ama.

Anladığım kadarıyla, bu View kullanıcı görür. Genellikle pencere/şeklidir. Controller arasındakileri View Model. Denetleyici veri "" her iki yönde de. akışına yapacak Ayrıca eğer 5 adım ile bir Sihirbazı var (Controller'doğru sırayla yapılır emin olmak için sorumluluk s, vb.). gerektiğinde devlet devam edecek Model, Uygulama mantığım çekirdek yaşadığı yerdir.

Bu görüş doğru mu?

Bir şey daha anlamlı döndürmeye için, Win ile basit bir örnek kroki çalışacağım(ASP.NET ya da WPF, lütfen! - java kalabalık, anlamak, Salıncak için geldim çalışır Win benzer bir şekilde!) ben bunun doğru olmadığını görmek için, ve ben her zaman bunu yaparken gelip soruları yetiştireceğim.


Hadi sadece bir sınıf (kolaylaştırmak için sadece. içeren bir model var varsayalım Örnek aptal ama en kolay bu şekilde bak) yapacak biliyorum:

class MyNumbers {
    private IList<int> listOfNumbers = new List<int> { 1, 3, 5, 7, 9 };

    public IList<int> GetNumbers() {
        return new ReadOnlyCollection<int>(listOfNumbers);
    }
}

Şimdi benim Controller yapma vakti geldi:

class Controller
{
    private MyNumbers myNumbers = new MyNumbers();

    public IList<int> GetNumbers() {
        return myNumbers.GetNumbers();
    }
}

View sadece ürün olarak tüm numaraları MyNumbers alınan ListBox olmalıdır.

Şimdi, ilk soru ortaya çıkıyor:

Controller MyNumbers oluşturmak için sorumlu olmalıdır? Bu basit durumda, kabul edilebilir MyNumbers tam olarak aynı, ve ilgili devlet ne olursa olsun yapacak gibi düşünüyorum. Ama diyelim ki benim app MyNumbers aynı örnek vardır tüm farklı Denetleyicileri için kullanmak istiyorum varsayalım. Kullanmak istediğiniz MyNumbers Controller(ve Tüm Diğerleri) bu örneğe geçmek istiyorum. Bunun sorumlusu kim olacak? Bu Win örneklerde, bu View olurdu? Ya bu View oluşturduğu sınıf olur?

Bu 3 parça örnekleme sırası nedir? bu soru etrafında dönüyor: "MVC adı oluşturmak için?sahibi olan kod nedir Controller View Model hem oluşturmanız gerekir? View oluştur Controller Controller Model gerekir?

İkinci soru:

Nasıl main yöntemi gibi, ben sadece başvurumu Controller canlandırıyor bu Use Case zorunda kalmak farz olmaz mı?

Üçüncü:

Neden MVC aşağıdaki şemada, View Model ok var mı? Controller her zaman View Model her ikisi arasında köprü olması gerekmiyor mu?

alt text


Bir-iki soru daha alacağım, ama onlar muhtemelen daha mantıklı bu ilk ayrıntı anlıyorum sonra sordu yapacak. Ya da belki Diğerleri paramparça ilk soruyu anladım sonra.

Teşekkürler!

CEVAP
22 Temmuz 2010, PERŞEMBE


Bir MVC ele almak için en kolay yolu.. bu söyleniyor bunu zorlayan bir çerçeve içinde kullanmaktır

  • Modeli veri kaynağı (DB ya da her neyse) ile etkileşime girer ve verilerinize erişim sağlar.
  • Görünüm, dış dünya ile etkileşime girer, bir yerden girdi alır ve aynı zamanda emin doğru verileri görüntüleyen onun için Denetleyici dinler Denetleyicisi verileri Çek.
  • Denetleyicisi, tüm sihir burada; Denetleyici veri işleyen olaylar iter, ve her iki yönde de değişiklik (Görünüm/Model/) işler.

Bu şema çok yararlı (Wikipedia çok daha mantıklı. MVC Diagram

Source ve MVC hakkında güzel bir yazı!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • JonnyEthco

    JonnyEthco

    5 EKİM 2006
  • kidrauhl

    kidrauhl

    15 Ocak 2007
  • xCraash

    xCraash

    6 Temmuz 2012