2014-04-22 103 views
1

我在Windows Phone开发中是全新的,我正在尝试编写一个应用程序,它从服务器检索数据并将它们显示给用户。我有几个资源在服务器上,可以说用户,任务和活动。我使用RestSharp lib从服务器检索数据。取得用户的REST - 良好的设计实践

实施例:

public void Get(String id, LifeHunt.MainPage.UserReady userReady) 
{ 
    var client = new RestClient(Deployd.REST_URL); 
    var request = new RestRequest(resource + "/{id}", Method.GET); 

    request.AddUrlSegment("id", id); 

    client.ExecuteAsync<User>(request, response => 
    { 
     if (response.StatusCode == System.Net.HttpStatusCode.OK) 
     { 
     userReady(callback.Data); 
     } 

    }); 
} 

一旦用户被检索,我调用userReady方法我回调传递和获取用户网主页来显示它。

现在,我必须对所有用户,Quest和Activity的所有CRUD(Insert,Get,GetAll,Update,Delete)函数重复整个过程。这意味着我将需要15种不同的回调方法,我认为这不是一个好的软件设计。

另一种方式只是一个回调方法,并检查回调方法中传递的参数类型。不过,我认为这不是一个好的解决方案。

我在思考着什么样创建CRUD通用接口,所有的用户,任务和活动类实现它:

interface ICRUD<T> 
{ 
    void GetAll(GenericCallback callback); 
    void Get(GenericCallback callback); 
    void Add(T item, GenericCallback callback); 
    void Remove(String id, GenericCallback callback); 
    void Update(T item, GenericCallback callback); 
} 

但是我真的不知道如何实现它,即使它是一个好方法。有人可以建议我一个好的设计解决方案吗?

+0

我不清楚为什么有15个回调显然会对数据起作用会比有一个catch all方法更糟糕,这个方法需要处理15个不同的情况。 – WiredPrairie

回答

1

使用MVVM,创建一个ViewModel,它可以容纳所有需要的数据并将其绑定到View。然后用直接返回所需数据的方法创建Service类(无回调)。在ViewModel中创建此服务的实例,并在需要时调用方法来获取和填充数据。