我们一直在使用松耦合和依赖注入来开发代码。
许多“服务”风格的类都有一个构造函数和一个实现接口的方法。每个单独的类都非常容易孤立地理解。
然而,由于耦合的松散,查看一个类并不能告诉您它周围的类或它在更大范围内的位置。
使用 Eclipse 跳转到协作者并不容易,因为您必须通过界面。如果接口是Runnable
,则对于查找实际插入的类没有帮助。确实有必要回到 DI 容器定义并尝试从那里找出问题。
这是依赖注入服务类中的一行代码:-
// myExpiryCutoffDateService was injected,
Date cutoff = myExpiryCutoffDateService.get();
这里的耦合尽可能松散。到期日可以以任何方式逐字执行。
这是在耦合度更高的应用程序中的样子。
ExpiryDateService = new ExpiryDateService();
Date cutoff = getCutoffDate( databaseConnection, paymentInstrument );
从紧密耦合的版本中,我可以推断截止日期是通过使用数据库连接的支付工具以某种方式确定的。
我发现第一种风格的代码比第二种风格的代码更难理解。
你可能会争辩说,在阅读这门课时,我不需要知道截止日期是如何计算出来的。确实如此,但如果我正在缩小错误范围或找出需要增强的地方,那么这是有用的信息。
还有其他人遇到这个问题吗?你有什么解决方案?这只是要适应的东西吗?是否有任何工具可以可视化类的连接方式?我应该让课程更大还是更耦合?
(故意让这个问题与容器无关,因为我对任何答案都感兴趣)。