在依赖倒置的直接应用中,抽象由上层/策略层拥有。该架构将较高/策略组件和定义较低服务的抽象组合在同一个包中。较低级别的层是通过这些抽象类或接口的继承/实现来创建的。
理想情况下,正如维基文章所说(在实现部分下的方法 2 中)抽象模块应该是松散耦合的单独模块,
但是我对引用声明的方法1有疑问。根据我的经验,无论 2 没有实现/可能,我总是看到抽象类是用低级模块而不是高级模块打包的。
用高级包封装抽象/接口的缺点是,如果有 10 个高级模块调用给定的低级模块,那么我们需要将接口打包在所有 10 个模块中。考虑到我必须在界面中添加一个方法,我必须修改所有 10 个模块才能添加该方法。不是吗?因此,根据我的理解,抽象类应该与低级模块而不是高级模块一起打包。
纠正我如果我在这里错了吗?