我刚刚开始学习Duck-typing和Inversion of Control。
在实际的示例中,我为什么要将这些概念合并到我的代码中呢?
发布于 2011-04-18 12:30:09
对接口进行编码有很多好处,即使您不像您的评论中所暗示的那样“为其他开发人员开发代码”。讨论这些好处是一个有价值的练习,但由于该问题要求提供真实世界的示例/用例,因此如下所示:
用于测试的
请注意我是如何尝试的,并且只提供了具有非常清晰的用例的示例。请注意,使用IoC和相关概念还有许多其他原因(例如,帮助生成模块化设计,提高可读性……)但这样的原因/优势更微妙,更不客观,但同样重要!
发布于 2011-04-18 12:29:47
据我所知,依赖注入是一种设计模式,它是通过控制反转来实现的,这更接近于软件设计的原则。
依赖注入的一个例子可能是将汽车和引擎分离到两个单独的类中。汽车需要一个引擎才能工作,并能在任何引擎下运行。然后发动机被依赖注入到汽车中。
IoC/依赖的一个好处是清楚地分离了类及其用途。一个类可以被另一个类替换,而不会中断你的代码。依赖注入可以在运行时完成,这允许轻松地重新配置您的软件。
发布于 2011-04-18 12:41:07
最近的一次经历让我明白了使用IoC是多么的简单。在最近的一项工作中,我不得不清理用户提交的html。在项目中的许多地方都使用了相同的清理服务。但是以前的正则表达式清理器不适用于某些特定的情况。我刚刚用JSoup库编写了一个新的实现,并将其链接到需要的地方。有了Spring IoC,切换变得如此简单:)
https://stackoverflow.com/questions/5698479
复制相似问题