Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
GRASP Creator 与依赖注入完全矛盾吗?
如果不是,请解释原因。
这不是矛盾,但是它们都在不同的情况下使用。
您更有可能在域层中使用 Creator,并在应用程序服务层(日志服务、控制器工厂、身份验证服务等,具体取决于您的平台)和域服务/数据访问层(存储库、数据映射器、数据网关等)。
Larman 在“应用 UML 和模式”(其中定义了 GRASP 模式/原则)中明确了这一区别,指出在重复使用回收实例对性能或决定家庭中需要哪个类很重要的情况下,Creator 是禁忌的被实例化。在这些情况下,最好将实例化交给工厂、抽象工厂或 DI。