模块解耦

【潜水】杭州-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

转载于:https://www.cnblogs.com/stst/p/4906978.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值