İOS geliştirmede bir web hizmetinden veri almak için Http İsteği yapan yöntemleri nereye koymalıyım?


9

İOS uygulamamda, otomobil verilerini içeren bir listeyi doldurmak için ad, yıl, değer vb. Parametrelerin bir web hizmetinden getirildiği bir Model Araba var.

Eşzamansız olarak sunucuya giden ve bir dizi araba döndüren yöntemi nereye koymalıyım (bu yöntem zaten JSON'u bir Araba dizisine dönüştürür)?

Benim mevcut yaklaşım benim HttpClient (böylece müşteri alaycı birim testi birim) ve araba bir NSArray döndüren alır benim sınıfta statik bir yöntemdir, bu iyi mi?

Bu durumda ne yaptınız?

Endişeliyim çünkü son zamanlarda bir Sınıfın sadece bir şey yapması gerektiğini söyleyen temiz kod okumaya başladım ve şimdi sahip olduğum yol 2 şey yapıyor gibi görünüyor (bir Araba hakkında bilgi tutun ve bir araba listesi alın).

Yanıtlar:


4

Arabalar için istekleri işleyen ve gibi yöntemleri ortaya koyan bir CarBroker Nesnesi tavsiye ederim:

  1. getCars - tüm araçların bir listesini almak için.
  2. getCarByID - belirli bir araba için.

Ayrıca böyle bir nesne, diğer araç brokerlerinden gelen talepleri de karşılayabilir (gerekiyorsa). Her iki durumda da, bir Araba Nesnesi ve bir Nesne Komisyoncusu'nun sorumluluklarıyla bir Araba Nesnesi olmanın aksine, gerçek bir sorumluluk alanı vardır - Otomobilleri Aracılık Etmek.


Bu kulağa hoş geliyor çünkü artık tekrar kullanılabilecek temiz bir Araba nesneniz var. Veri almak için başka bir erişim protokolü kullanmaya başlarsanız ne olur? Bu senaryoda başlayacak bir yeriniz var, bir taraftaki \ rules \ logic kodunu işlediğinizin tümünü Araba nesnelerini kabul ettiğini biliyorsunuz. Daha sonra REST veya herhangi bir şeyi kullanarak CarBroker'ı yeniden uygulamaya başlayabilirsiniz, ancak zaten orada yarı yoldasınız ve özünde sadece bir Araba soyutlamasıyla ilgili olan mantığı yeniden programlamak ve tekrar test etmek zorunda değilsiniz .
Andyz Smith

1

Burada başka bir nesnenin tutulması, ebeveynin yanıtı işlemek için her zaman hayatta olacağı garanti edilemeyen bir yerde tutulmalıdır.

Bu uygulamayı tek bir sınıfta tutmanızı öneririm. Bu sınıfı tutmak, çok sık çağrılabilecek bazı genel yöntem uygulamaları için de yararlı olacaktır.


-1

Dizi web'den döndüğünde ViewDidLoad yönteminin içinde eşzamansız yöntemi çağırabilir, görünümü yenileyebilirsiniz. Diziyi veritabanına kaydedebilirsiniz, böylece Viewcontroller her yüklendiğinde web'den veri yüklemeniz gerekmez.


3
bu sorulan soruya nasıl cevap veriyor?
sivri
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.