2016-05-12 51 views
5

Model View Presenter mimarisini yeni bir iOS projesine uygulamayı düşünüyorum. Bazı okumalardan sonra, bu post'un en iyi örneğe sahip olduğunu buldum. here kodunun ham koduna bağlantı. DahasıModel Presenter ve iOS (Swift) Mimarisini Göster

// Assembling of MVP 
let model = Person(firstName: "David", lastName: "Blaine") 
let view = GreetingViewController() 
let presenter = GreetingPresenter(view: view, person: model) 
view.presenter = presenter 

, yazar şöyle der::

Örneğin alt montaj kodu vardır

biz Modeli hakkında bilmek Görünüm istemiyorum yana, onu Görünüm denetleyicisini sunarken (Görünüm olan) montaj yapmak doğru değildir, bu yüzden bunu başka bir yerde yapmak zorundayız. Örneğin, montajı gerçekleştirmekten ve View-to-View sunumundan sorumlu olacak uygulama çapında Router servisini yapabiliriz.

Sorum:

  • Ben montaj kodu koymak gerekir?
  • Uygulama çapında bir yönlendirici uygulamasına daha fazla örnek nereden bulabilirim?

cevap

1

Burada sadece ben bu konuda merak edenler değil;

seninle iOS'taki MVP için ilgili benim diğer bulgu paylaşalım):

Screencast by David Gadd - Biraz uzunluğunda (1h 20dk) ve biraz eski (Aralık 2012) ama kesinlikle görülmeye değer. Çok küçük bir uygulama için MVP'nin (AppCode'da) nasıl uygulandığını göreceksiniz (birim testlerinin nasıl yazılacağı konusunda oldukça iyi bir tanımla birlikte). David'in oluşturduğu yönlendirici yönlendirmesi ServiceLocator olarak adlandırılmıştır. Ne yazık ki bu screencast için indirmek için kod bulamadım (ancak bu uygulamayı izlerken kendi versiyonunuzu oluşturmak mümkündür).

Belki de yönlendirici oluşturmak için başka yollar vardır, ancak bu ekran biraz daha anlamanıza yardımcı oldu. MVP konseptine oldukça yeniyim ve daha büyük bir uygulamada kullanmamıştım (tek ekranlı ekran görüntüsü, daha büyük olan). ... MVP gerçek hayat uygulamasında nasıl uygulandığına görmek harika olurdu

[DÜZENLE]

Sadece ilk sorulara cevap vermedi fark ettik.

+ (id)resolve:(PresenterTypeEnum)type; 

Bu yöntemin uygulanmasında size basit bir anahtarı bulacaksınız: screencast yönlendirici konusu uygulamaya göre

bir sınıf yöntemi ile bir sınıftır. Bir parametre yöntemine tip tipinde gönderme, bir sunucunun uygun örneğini döndürür.

Bu yöntem viewDidLoad numaralı telefondan çağrılmaktadır. Bir sunum yapan kişinin vaktini aldıktan sonra, bir sunum yapan kişinin görünümünü kendiniz ayarlamanız gerekir.

Umarım bu açıklama açıktır. Her neyse, ekran izleyicisini izlemenizi şiddetle tavsiye ediyorum, o zaman kristal olarak net olmalı;)