我正在使用C#/ MVC 4编写一个Web服务客户端,该客户端使用客户端的JSON.net与REST-Webservice进行通信。 到目前为止,一切工作正常,但我想改进架构,使处理更加流畅。
我编写了一个连接器类并将其初始化为:
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基本上是一个普通的对象。另一种选择是将连接处理程序传递给save-method,但这也有气味。
有任何改进建议吗?
答案 0 :(得分:1)
如果您想要“普通记录”,则不应实现activerecord模式。这是一个矛盾。听起来对你来说,你对存储库模式更感兴趣。
参考文献看看: Is Repository pattern as same as Active Record pattern?
或更广泛地了解您的选择: