发送到(低内存)客户端的域对象的较小版本

本文关键字:对象 版本 客户端 内存 | 更新日期: 2023-09-27 18:17:58

我有很多属性(成员)的域对象,我在我的API中使用。在某些事务中,将域对象发送到客户机比发送具有相同成员的全新响应类更有意义

现在我的问题是,是否有一种方法,我隐藏类的一些属性,只发送一些属性(成员)到客户端(并在不同的调用发送一组不同的属性和隐藏休息)?

发送到(低内存)客户端的域对象的较小版本

您可以创建新的响应DTO(数据传输对象)类,其中只包含您想要发送回的属性。然后创建工厂方法,将域类的对象转换为响应DTO。

这将满足你的目的。以后如果你想在你的DTO中添加新的属性,这些属性实际上存在于其他域类中,你可以很容易地添加它们。

只是为了以防你想要使用它。您也可以有请求DTO,客户机的数据不一定映射到您的域类。同样,您可以创建一个工厂方法,将您的请求DTO转换为域类/类对象。

正如已经回答的那样,DTO更适合于此。作为一种替代方案,您可以将不需要的属性从客户机"隐藏"到更具体的公共接口后面。您的域对象可以简单地实现它们。

的例子:

class Document : IEntity, IVersionable, IDocumentContentDescription 
{
    public string Name { get; set; }
    public string Description { get; set; }
    public string MimeType { get; set; }
    public long Length { get; set; }
    public int Version { get; set; }
}
public interface IDocumentContentDescription
{
    string MimeType { get; }
    long Length { get; }
}