我正在读关于依赖倒置和解耦的理论,我看不出两者之间的区别。 依赖倒置说到解耦function组件,以便更高层的组件不依赖于更低层的组件。 脱钩谈论同样的事情,以及如何实现它。 但是,我们有IoC容器 ,更糟的是, 为什么不把它们称为依赖性反转容器,或者更好的dependency injection容器 ,因为它们提供独立组件的运行时耦合? 然后我们有控制反转 。 这与依赖倒置基本上是一样的吗? 为什么有三个术语描述相同的事物? 还是我瞎了? 三者有什么区别? IoC在IoC容器中必须做什么?
我正在考虑像这样在DOM中embedded任意的JSON: <script type="application/json" id="stuff"> { "unicorns": "awesome", "abc": [1, 2, 3] } </script> 这与在DOM中存储任意HTML模板的方式类似,以便稍后与JavaScript模板引擎一起使用。 在这种情况下,我们可以稍后检索JSON并使用以下语法进行分析: var stuff = JSON.parse(document.getElementById('stuff').innerHTML); 这有效 ,但这是最好的方法吗? 这是否违反任何最佳做法或标准? 注意:我不想在DOM中存储JSON的替代品,我已经决定这是我遇到的特定问题的最佳解决scheme。 我只是在寻找最好的方法来做到这一点。
jQuery的Deferred有两个函数可以用来实现函数的asynchronous链接: then() deferred.then( doneCallbacks, failCallbacks ) Returns: Deferred doneCallbacks在parsingDeferred时调用的函数或函数数组。 failCallbacks延迟被拒绝时调用的函数或函数数组。 pipe() deferred.pipe( [doneFilter] [, failFilter] ) Returns: Promise doneFilterparsingDeferred时调用的可选函数。 failFilter当Deferred被拒绝时调用的可选函数。 我知道then()已经比pipe()长了一些,所以后者必须增加一些额外的好处,但是这个差别正是我所没有的。 虽然两者的名字不同,但它们的callback参数几乎相同,返回Deferred和返回Promise的差别似乎很小。 我一遍又一遍地读了官方文档,但总是发现它们太“密集”,真的把我的头围绕着,search已经发现了很多关于这个function的讨论,但是我还没有发现任何能够真正澄清不同的东西每个的利弊。 那么什么时候使用更好,什么时候使用pipe更好呢? 加成 菲利克斯的出色答案确实有助于澄清这两个function的不同之处。 但是我想知道是否有时候then()的function优于pipe() 。 很明显pipe()比pipe()更强大,前者似乎可以做任何事情。 使用then()一个原因可能是它的名字反映它的作用是终止处理相同数据的函数链。 但是是否有一个用例需要then()返回原来的Deferred ,由于它返回一个新的Promise而无法用pipe()完成?
(1) List<?> myList = new ArrayList<?>(); (2) ArrayList<?> myList = new ArrayList<?>(); 我明白,在(1)中, List接口的实现可以交换。 看来,(1)通常在应用程序中使用而不pipe需要(我自己总是使用它)。 我想知道是否有人使用(2)? 另外,这种情况实际上需要多久使用(1)over(2)(例如where(2)不足),除了接口和最佳实践的 编码外,