模块解耦

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

posted @ 2015-10-24 15:49  赛提斯特  阅读(473)  评论(0编辑  收藏  举报