【发布时间】:2014-05-21 20:11:50
【问题描述】:
我目前正在学习各种应用程序设计方法,但有一件事我无法真正理解。
假设我的网络中有一个物理设备,一个 IP 监控摄像头。我需要一个代表“IP 监控摄像头”的模型,以便在我的应用程序中使用它们,它可能如下所示:
public class IPCamera {
public string Token { get; set; }
public IPAddress IPAddress { get; set; }
public string RtspUri { get; set; }
}
现在,如果我想将 IPCamera 存储到数据库中(例如,使用 Entity Framework),我可能需要其他/附加属性,因此需要另一个模型:
public int Id { get; set; }
哦.. 我想通过 WCF 服务访问我的应用程序。我不能在这里使用对象“IPAddress”,因为它对序列化不太友好,因此我需要另一个具有自定义 IP 类的模型,该类将 IP 地址存储为字符串。
最后,一个 Android 客户端想要访问我的数据。我使用 WebApi2 设计了一个 RESTful API。客户端对摄像机 RTSPUri 不感兴趣,但想了解当前状态(在线、离线)。
我想知道:如何命名所有这些不会发生冲突的模型?我应该为每个目的/层/服务设计一个模型吗?以及如何链接/映射它们?使用适配器模式?
【问题讨论】:
标签: c# design-patterns architecture domain-driven-design