首页 > 其他 > 详细

模块解耦

时间:2015-10-24 17:06:44      阅读:231      评论:0      收藏:0      [点我收藏+]

技术分享【潜水】杭州-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

模块解耦

原文:http://www.cnblogs.com/stst/p/4906978.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!