依赖性倒置原则的第二个陈述指出:
"抽象不应该依赖于细节。细节应该取决于 抽象。"
'详细信息'在这种情况下意味着什么?
答案 0 :(得分:1)
我更喜欢考虑抽象,例如“什么我想要的结果”,以及详细信息,如“ how < / strong>我想得到一个结果“。
原则意味着细节变化(例如,对象的生命周期,算法,精度等)不会改变抽象。
答案 1 :(得分:1)
抽象可以是行为方面,可以通过在接口方面消费代码来利用。任何高级别或低级别的类/代码都将使用抽象进行通信而不使用运算符。这些类被定义为“详细信息”。
答案 2 :(得分:0)
我对此的理解是,它与第一个原则密切相关,即高级模块不应该依赖于低级模块。两者都应该取决于抽象&#34;。这种方法的实现通常采用接口的形式,高级和低级类都使用这种接口相互通信。
嗯,这基本上已经遵循了第二个原则,因为我们的细节,即使用该接口的类的具体实现现在依赖于抽象,即类正在使用的接口。
此外,抽象现在不再依赖于类本身,因为它们现在位于类已经实现的接口之后,因此可以自由更改(当然除了签名)而不更改细节。必要的具体实施。
我不认为我已经像我一样清楚,但我希望这会有所帮助。
答案 3 :(得分:0)
让我尝试分享我的愿景
我相信这个术语通常用于两个组分A和B之间关系的上下文中,例如(A使用B,A - > B)。所以 just&#39;抽象&#39;对我来说毫无意义。有意义的是像A&#39;从A的角度抽象B&#39;
我尝试建立一个严格的定义(或多或少):
如果A使用B,那么从A的角度来看B的抽象是最小和足够信息集必须了解B正确使用它。
我相信这个术语的主要目标(细节,抽象)是一种快速的方式来提及你可以(细节)改变而不破坏A-&gt; B通信或你无法改变的东西(抽象)在适当的A - > B用例。