![]() |
1
1
克里斯有一个有效的建议。 它部分依赖于代码的上下文,但是依赖关系将存储库注入到您创建的数据映射器实例中,即:
以后,只要您想使用findall(),就不用再传递$repo了。IE:
我发现,当参数成为我正在进行的每个函数调用中普遍存在的一部分时,考虑将它们转换为实例变量是有意义的(尤其是当它们每次都相同时)。 如果您的存储库在上下文/实例之间有所不同,那么注入就更有意义了。如果您发现您总是在创建一个repo实例,并且希望回收它,那么使用单例可能是合适的。 依赖注入的好处在于它确实澄清了这种依赖概念(讽刺!)。如果要强制执行它,可以执行如下操作:如果$repo对象为空,或者不是存储库实例,则在uConstruct()方法中引发异常。 |
![]() |
2
1
我可能会做得有点不同。我将添加setrepository(repository$repos)方法和getrepository()方法。然后,在findall方法中,调用getRepository()。如果尚未调用setrepository(),则getrepository可以返回默认的存储库实例。 我还可能为知识库类创建一个接口,以便在datamapper类中使用不同的知识库实现。 所以get方法看起来像
而set方法可能看起来像
|
![]() |
Montaser Majid · 用于从多行中提取单行的SQL查询 3 年前 |
![]() |
Chance · 根据Sequelize中的字段拉入特定记录/行 3 年前 |
![]() |
lambchop01 · GORM如何为相似实体之间的关系建模 3 年前 |
![]() |
Shale · 如何将此查询更改为ORM? 3 年前 |
![]() |
Daniel Morales · 替换mongo DB中的嵌入字段 3 年前 |
![]() |
Vinay P · NodeJS和ORM? 7 年前 |
![]() |
MadDoctor5813 · 在Django模型中创建“简单”字典? 7 年前 |