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

    浮沙之上勿筑高台
  • 相关阅读:
    文件系统
    MySQL中添加唯一约束和联合唯一约束
    Ubuntu(Debian)的aptitude与apt-get的区别和联系
    透明与Z序示例
    Qt Quick分组属性案例
    TextView 设置超过几行后显示省略号
    ionic list item-radio checked
    webkit的基本应用
    信号槽操作案例
    报错:tr was not declared in this scope
  • 原文地址:https://www.cnblogs.com/stst/p/4906978.html
Copyright © 2011-2022 走看看