模块解耦
【潜水】杭州-Java-佳娃
@英界尔 还有一个问题 我现在发现一个方法调用的深度 很深如何优化啊!!
【传说】英界尔
递归的调用?
【潜水】杭州-Java-佳娃
应该这么说:有个功能,跟其他功能依赖性太强了,如何解耦,就是每次改其他的功能都有些影响这个功能。
【传说】英界尔
把你这个功能和其他功能的依赖,用单独的接口描述出来
其他的功能模块实现这个接口
比如
A -->Func1()--->B
-->Func2()--->B
-->Func3()--->C
-->Func4()--->C
A模块调用了B的Func1,Func2,C的Func3,Func4
【传说】英界尔
那么你应该这样处理:
在A模块中定义
interface IB
{
Func1();
Func2();
}
和interface IC
{
Func3();
Func4();
}
然后B里定义 Class B:IB{......}
C里定义 class C:IC{......}
@kevin-PHP
酷
【传说】英界尔
这样A只和自己模块内部的IB和IC打交道,而IB和IC的具体实现在B模块和C模块中
可以通过IOC,或者最简单的配置文件实现IB和B,IC和C的运行时关联
这里依据的原则是依赖倒置原则
你原来的依赖关系是A依赖B和C里面的Func**
现在反过来,B和C依赖A里面的接口定义IB和IC
浮沙之上勿筑高台
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步