gpt4 book ai didi

java - 如何组织由多个列表组成的模型

转载 作者:行者123 更新时间:2023-12-01 11:16:45 26 4
gpt4 key购买 nike

我有一个模型,其中包含新闻源中使用的多个列表。例如,体育故事和汽车故事有不同的列表。我想知道我应该如何组织这些。

class  NewsFeed{

public List<SportStory> sportStories;
public List<CarStory> carStories;
public Map<int, String> storyType;
public Map<int, int> storyPositions;

public String getType(int position){
storyType.get(position);
}

public String getPositionInList(int position){
storyPositions.get(position);
}

}

class SportStory{

public String sportName;
public String imageUrl;
public String notablePlayer;
public int favourites;

}

class CarStory{
public int storyType;
public String carName;
public String carType;
public String carColor;


}

然后, View 通过使用 getType 函数检查故事的类型,使用正确的模板呈现模型中的故事。它使用 getPositionInList 获取故事位置。
例如,假设 View 正在渲染第五个故事。它将使用 getType 函数并发现这是一个汽车故事。然后,它将使用 getPositionInList 查看新闻源中的第五个故事与汽车故事列表中的第二个项目相对应。
我遇到的另一个问题是,如果添加不同类型的故事,则必须更改此类。

如果在 View 上触发事件,则会在 Controller 上调用回调。

   public void onSportStoryFavourited(int id){
SportStory story = getSportStoryById(id);
story.favourites = story.favourites + 1;
dao.updateSportStory(story);
view.onStoryFavourited(id);
}

我真的认为这种方法根本不合理。

最佳答案

我建议制作一个新的 Story类(class)。它可能是一个几乎空的类,但它可能包含一些有用的内容,例如 dateWritten这适用于各种Story s。然后,您可以简单地拥有您的 CarStorySportStory扩展你的父类 Story

然后,您的新闻源就不会包含繁琐的 List<SportStory>List<CarStory> ,但只有List<Story>

如果您需要检查故事的类型,那么您可以使用 instanceof而不是跟踪 int 中的 map 到描述。例如,您可以这样做 someStory instanceOf SportStory这将返回 true如果someStory类型为SportStory

关于java - 如何组织由多个列表组成的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31733618/

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