我在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);
}
但是我真的不知道如何实现它,即使它是一个好方法。有人可以建议我一个好的设计解决方案吗?
我不清楚为什么有15个回调显然会对数据起作用会比有一个catch all方法更糟糕,这个方法需要处理15个不同的情况。 – WiredPrairie