zoukankan      html  css  js  c++  java
  • 模块解耦

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

    浮沙之上勿筑高台
  • 相关阅读:
    AcWing 125. 耍杂技的牛
    AcWing 148. 合并果子
    AcWing 907. 区间覆盖
    AcWing 908. 最大不相交区间数量
    AcWing 906. 区间分组
    AcWing 905. 区间选点
    AcWing 285. 没有上司的舞会
    AcWing 1049. 大盗阿福
    AcWing 901. 滑雪
    AcWing 91. 最短Hamilton路径
  • 原文地址:https://www.cnblogs.com/stst/p/4906978.html
Copyright © 2011-2022 走看看