【问题标题】:Grasp creator vs. dependency Injection掌握创建者与依赖注入
【发布时间】:2025-12-26 10:05:06
【问题描述】:

GRASP Creator 与依赖注入完全矛盾吗?

如果不是,请解释原因。

【问题讨论】:

  • 如果您认为矛盾,请解释原因。

标签: design-patterns dependency-injection design-principles grasp


【解决方案1】:

这不是矛盾,但是它们都在不同的情况下使用。

您更有可能在域层中使用 Creator,并在应用程序服务层(日志服务、控制器工厂、身份验证服务等,具体取决于您的平台)和域服务/数据访问层中使用依赖注入或工厂(存储库、数据映射器、数据网关等)。

Larman 在“应用 UML 和模式”(其中定义了 GRASP 模式/原则)中明确了这种区别,指出在重复使用回收实例对性能或决定哪个类很重要的情况下,Creator 是禁忌的需要实例化一个家庭。在这些情况下,最好将实例化交给工厂、抽象工厂或 DI。

【讨论】: