假设有:
系统 A,插件 B。系统 A 定义了接口,插件实现接口功能。
但是出现了个依赖问题,因为插件 B是作为默认插件放入系统 A中的,所以 系统 A 依赖 插件 B。
插件 B 因为要有系统 A 的接口来规范,所以也需要依赖系统 A。
那么问题来了,这时候就会出现循环依赖问题,有什么解决办法吗?
|  |      1loongwang      2019-05-21 16:00:11 +08:00 依赖倒置原则 | 
|      2frienmo      2019-05-21 17:00:01 +08:00 所有 API 定义在 C 里,A 里面向接口 C 编程,B 实现接口 C。 插件设计模式的话我们用的是 google autoservice | 
|  |      3palmers      2019-05-21 18:13:14 +08:00 我也觉得这时候应该拆分 A | 
|  |      4binbinyouliiii OP | 
|      5mooncakejs      2019-05-21 19:10:34 +08:00 既然不想拆分,那就把 a 和 b 放一起。 | 
|  |      6palmers      2019-05-21 19:54:52 +08:00 1.“我得把插件用到类全分出来”   这个我觉得本来应该是一个协议或规范模块 独立的 没有任何依赖的 2. “很多类是跟系统强耦合的” 这个含义是 需要拆分出来的类是系统 A 强耦合的吗?那么 A 可以依赖拆分得到的独立模块来解决 3. ‘系统很多地方都需要使用可替换的“插件模式” ’ 这个也是这样 本来就应该将协议抽象 按照你现在需求和我的理解, 你面临的就是因为模块不够独立 很多需要细化的子模块放到了一个模块中, 所以出现了依赖问题 如果将现在的模块进行拆分 细化 耦合就解掉了 我也遇到过这种问题 一般这种问题都是因为业务的不断变更造成的 | 
|  |      7YzSama      2019-05-22 08:35:12 +08:00 via iPhone 抽插件 到顶层的 pom ? | 
|      8wc951      2019-05-22 10:54:39 +08:00 via Android 依赖的 optional 设成 true |