0

我正在使用 C#/MVC 4 编写一个 Web 服务客户端,它与 REST-Webservice 通信,在客户端使用 JSON.net。到目前为止一切正常,但我想改进架构以使处理更加流畅。

我写了一个连接器类并像这样初始化它:

var conn = new MyConnector("admin", "admin", "http://localhost:9000");

然后我有一个像这样的 POCO 类:

public class MyRecord
{
    [JsonProperty("record_id")]
    public string RecordId;
    ...

我通过对 Web 服务执行 PUT 请求来保存更改。看起来像:

var updated = conn.UpdateRecord("MyRecordId", new  NameValueCollection{{"title","new_title"}});

我想做的是更像 ActiveRecord 来实现它:

var myRecord = conn.GetRecord("myRecordId);
myRecord.title = "Foo";
myRecord.save();

这意味着 MyRecord 类必须知道连接处理程序。这对我来说似乎是糟糕的设计,因为 MyRecord 基本上是一个普通的对象。另一种选择是将连接处理程序传递给保存方法,但这也有味道。

有什么改进的建议吗?

4

1 回答 1

1

如果你想要一个“普通记录”,你不应该实现 activerecord 模式。这是一个矛盾。在我看来,您对存储库模式更感兴趣。

作为参考,请查看: Repository 模式与 Active Record 模式相同吗?

或更广泛地了解您的选择:

http://msdn.microsoft.com/en-us/magazine/dd569757.aspx

于 2012-07-23T14:00:46.260 回答