Ols*_*ls1 5 design-patterns dependency-injection design-principles grasp
GRASP Creator 是否与依赖注入完全矛盾?
如果不是,请解释原因。
这并不矛盾,但是它们都在不同的情况下使用。
您更有可能在域层中使用 Creator,并在应用程序服务层(日志服务、控制器工厂、身份验证服务等,具体取决于您的平台)和域服务/数据访问层(存储库、数据映射器、数据网关等)。
Larman 在“应用 UML 和模式”(其中定义了 GRASP 模式/原则)中明确了这一区别,指出在重用回收实例对于性能或决定家族中的哪个类需要很重要的情况下,Creator 是禁忌的被实例化。在这些情况下,实例化最好归入工厂、抽象工厂或 DI。