gpt4 book ai didi

class - 根据上下文仅返回对象中所需数据的最佳模式是什么?

转载 作者:行者123 更新时间:2023-12-02 10:42:42 26 4
gpt4 key购买 nike

我将通过示例来问这个问题。假设我正在设计 StackOverflow,并且我拥有用户发布的所有这些帖子。对于每篇文章,我都会跟踪大量内容(标题、标签、作者、时间戳、评论、历史记录等)。

所以我设计了一个名为 Post 的类来处理这个问题。

当我访问 StackOverflow 主页时 - 我必须列出许多帖子。现在我有一个帖子结构的集合(可能是列表)。

问题是,每当我需要获取列表时,我不需要帖子本身中存在的大量详细信息。例如,在列表页面上我不需要历史记录。

所以,问题是,实现这样的事情的最佳模式是什么。目前我们所做的是,我们有一个较轻版本的 Post 类(例如 PostLight),这是在此类场景中使用的 - 但这看起来很俗气。

最佳答案

我建议使用LazyLoading它可以满足您的需求,并且通常与数据库查询一起使用。

假设您有一个类 Post,它从数据库加载,仅包含一些常用字段。仅当请求时才会加载所有其他详细信息。

可以使用这样的东西:

public class Post
{
private String title;
private String text;
private List<Post> history;

public String getTitle() {
return title;
}

public String getText() {
return text;
}

public List<Post> getHistory() {
if (null == history) {
history = loadHistory();
}
return history;
}
}

因此,在首页上,如果您列出了几篇没有详细信息的帖子,则不会加载历史记录。

您可以在实例化 Post 对象时注入(inject)自定义 DataLoader,然后在延迟加载时调用该加载程序数据。

作为替代方案,您也可以使用 ProxyPattern这会给你一些类似的行为。

关于class - 根据上下文仅返回对象中所需数据的最佳模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11912924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com