我正在学习依赖反演原理。它指出:
高级模块不应依赖于低级别模块。两者都应依赖于抽象。
有一段时间,我试图理解高级别组件和低级别组件的含义,依赖抽象并依赖它们。
我假设两者在某种程度上都应该依赖于相同的抽象。如果这是错误的,请纠正我。
对于这意味着什么,我得出了一些结论。请确认这是否准确。
“高级组件依赖于抽象”--意思是:
高级组件与接口通信以与底层组件通信,而不是直接与具体的低级组件通信。底层组件实现了这个接口。
“低级别组件依赖于抽象”--意思是:
底层组件是按照接口的方式定义和设计的。它们被设计成适合这个界面。它们依赖于接口,就像接口定义它们的设计方式一样。(通常是低级类实现该接口)。
这样,高层组件和底层组件都“依赖于抽象”,但方式不同。
这是一个很好的理解吗?
发布于 2014-04-30 18:49:38
是的,很多人认为软件建设就像建筑建筑一样。DB是DAL的“基础”,DAL位于上面,业务层位于DAL上,UI位于业务层.
相反,把它想象成一辆挂着的移动车。在那里“层”悬挂在一个共同的锚。UI和业务层都挂在业务接口上,业务层和DAL都挂在DAL接口上,DAL和数据库通过DB接口连接。
https://softwareengineering.stackexchange.com/questions/235025
复制相似问题