我正在为PHP 5编写DI框架,我一直试图找到与依赖注入有关的一些单词的“官方”定义。其中一些词是“上下文”和“生命周期”。而且,我称之为创建/注入的对象是什么?最后,组件和服务之间的区别是什么,以及哪个术语(如果有的话)应该调用可以注入的对象?
我已经阅读了Martin Fowler的文章并浏览了其他DI框架(Phemto,Spring,Google Guice,Xyster等),但我想知道你的想法。谢谢!
答案 0 :(得分:2)
玩得开心:)
答案 1 :(得分:1)
我不知道有一个'官方'的定义。福勒的文章是我在DI上读到的第一篇文章。如果这对你来说不够权威,我看不出SO会如何改进。
“透视”对你意味着什么?你读了多少文件?你有没有尝试用它编写任何应用程序?如果你用Spring和Guice编写代码,你已经为自己做了很好的调查。如果您刚刚阅读了Google带回来的一些文章,那么您还有更多工作要做。
Spring中的'Context'意味着工厂用于为您实例化对象。我通常每个应用程序或Web应用程序有一个。我的应用程序通常是创建对象的“上下文”。'生命周期'与DI没有区别 - 它与创建,初始化,使用和销毁对象的时间有关。
组件是单个软件工件中的数据和操作。服务是执行业务重要操作的特殊组件,通常分布在网络上。服务通常是组件,但并非所有组件都是服务。它们不是同义词。
您可以在没有DI框架的情况下编写组件或服务。如果它可以帮助你调用注入对象的组件,那就做我的客人。
我很好奇:为什么强调这些东西的名字?命名当然很重要,但这不是DI的主要问题。