小编Fre*_*yyh的帖子

DDD是否适合基于搜索的应用程序?

我正在学习DDD。

但是我不知道如何在应用程序中应用DDD。我的几乎所有应用程序都有简单的要求。只需从API获取数据并对其进行重组即可。如果需要更多数据,请调用更多API。

要求:搜索在2公里半径范围内的开业餐厅(商店)中出售的菜单输入:用户的位置
提供的API:搜索商店API,商店营业时间API(按商店ID),菜单API(按商店ID)

  1. 根据用户的位置从搜索API中获取商店列表。
  2. 按距离筛选商店清单(2公里以内)
  3. 如果有满足其条件的商店,则获取商店营业时间API。
  4. 如果有已打开的商店,请从菜单API获取菜单。
  5. 如果有结果,请按价格对其进行排序,然后重新构建您拥有的所有数据。

  1. 在这种情况下,我无法提取域/模型。什么是域实体?

  2. 这是我的示例代码。但这似乎很糟糕。我认为SearchMenuService是应用程序服务(不是域服务),但是有很多逻辑。我该如何修复示例代码?

  3. 如果我想从域实体中的rest api获取更多数据,这可能吗?我认为JPA可以通过延迟加载来获取更多数据。

@Service
public class SearchMenuService {
    private StoreRepository storeRepository;
    private OpenTimeRepository openTimeRepository;
    private MenuRepository menuRepository;

    @Transactional(readOnly = true)
    public ResultMenu getMenus(String location) {
        List<Store> stores = storeRepository.findStore(location);
        List<Store> nearStores = stores.stream().filter(store -> store.distance < 2000).collect(Collectors.toList());
        if (CollectionUtils.isEmpty(nearStores)) {
            throw new NotFoundStoreException();
        }
        List<OpenTime> openTimes = openTimeRepository.findByStores(nearStores);
        List<Store> openStores = new ArrayList<>()
        for (int i = 0; i < nearStores.size(); i++) {
            LocalTime now = …
Run Code Online (Sandbox Code Playgroud)

java oop domain-driven-design domain-model

0
推荐指数
1
解决办法
55
查看次数

标签 统计

domain-driven-design ×1

domain-model ×1

java ×1

oop ×1