MKr*_*ers 3 php domain-driven-design
我对领域驱动设计(DDD)相当陌生,但我所理解的是你对应用程序服务说话,这是你的"模型"的入口.该服务可以与使用源(文件,数据库等)来获取数据的存储库进行通信.存储库返回一个实体.
这就是我所得到的全球理念.服务知道存储库但不知道实体等.
现在我有以下问题.
我有一个实体用户,它类似于以下内容(仅作为示例)
<?php
class User
{
protected $name;
protected $city_id;
public function getCity()
{
// return $city_entity;
}
}
Run Code Online (Sandbox Code Playgroud)
getCity()函数返回城市实体.我希望此函数使用延迟加载,因此在使用用户存储库时注入CityEntity并不是非常懒惰的加载.
我带来了两个问题的解决方案.但我觉得两者都是针对DDD的负责人.
我提出的第一个解决方案是在用户实体中注入城市存储库,这有缺点:如果您需要更多存储库,则必须在实体中加载它们.它看起来像答案,但它看起来像我的存储库的包装.那么为什么不注入存储库呢?
第二种解决方案,您为实体提供服务定位器.这样做的缺点是除非您阅读代码,否则您不再需要哪些存储库.
所以现在问题是,在保持DDD原理完整的同时,提供延迟加载的灵活性的最佳方法是什么?
| 归档时间: |
|
| 查看次数: |
2490 次 |
| 最近记录: |