Bir ağ bağlantısını dinleyen bir uygulama yazıyorum ve bazı veriler geldiğinde, geri dönüyor ve gelen verilere bağlı olarak, geri göndermeden önce kullanıcıya (göster iletişim kutusu) sorması gerekebilir.Model-View-Viewmodel mimarisindeki model yönteminin ortasından nasıl kullanıcı girişi temizlenir?
MV-VM mimarisinde bunu nasıl temizleyeceğimi bilmiyorum: GUI'yi gelen verilere dayanarak güncellemem gerekirse, gözlemlenebilir koleksiyonlara bağlanma ve etkinlikler güzel, ancak eğer gerçekten bir anwer'e ihtiyacım varsa kullanıcı geri cevap vermeden önce?
Ve işleri daha da kötüleştirmek için, eşzamanlı olarak yapmak istiyorum, çünkü yanıt algoritmamın tek bir yerde olmasını istiyorum, belirsiz 'kim-çağrıları-kim' sorumlulukları olan birden çok geri bildirime bölünmemiş.
Basitçe,
HandleMessage(Message msg){
string reply;
if (msg.type == 1) {
reply = ...
} else {
string question = msg...
reply = ShowModalDialog(question); // MVVM violation!
}
sender.Send(reply);
}
ama böyle bir şey manken yeniden kullanılabilir ve test edilebilmelidir olarak, modelden görünüm veya ViewModel aramak istemiyorum - Her deney vadede diyaloglar haşhaş istemiyoruz ve MVVM ihlali olurdu! Hiçbir olay (bunlar bildiğim kadarıyla tek yönlüdür ve olay kaynağına yanıt almak için geriye dönük bir kanala sahip değildirler) veya eşzamanlı olamayacağı için veri bağlamaya gerek duymazlar.
Bu yapılabilirlik? Bu, birçok test odaklı geliştirme propagandasında sorduğum bir soru ve şu ana kadar pratik olarak kullanılabilecek bir cevap alamadım. Yine de, işlemin ortasında bazı ek girdilere duyulan ihtiyaç oldukça yaygındır.
Teşekkürler!
DÜZENLEME: Bu uygulama mantığıdır, bu nedenle açıkça modele aittir ve bu durumda bile olmasa bile, işin ortasında gerçekten kullanıcının girişine gereksinim duyduğum durumlar için çözümü bilmek isterim modelde mantık rutini.
+1 ama bu çılgınlığı ile katılmıyorum. –
Teşekkürler, bu temiz bir çözüm gibi geliyor, bağlantıları okuyacağım (teşekkürler!) –