模块解耦
2015-10-24 15:49
176 查看
【潜水】杭州-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
相关文章推荐
- 复杂系统的五个属性
- corosync+pacemaker+nfs+crmsh配置web服务的高可用
- 每天一个linux命令(15):rmdir 命令
- android 修改RadioButton的drawTop图片大小
- 有关信息ACM/ICPC竞争环境GCC/G++叠插件研究记录的扩展
- 多线程服务器的适用场合
- 浏览器自带返回与自带返回强制刷新和锚点功能
- jQuery中的DOM操作2
- 关于录屏软件的实现原理的猜想
- Android中使用Parcelable接口
- dubbo+zookeeper+springmvc整合,小入门
- ROS中的depth image转换到laser scan的包
- 带上下界的网络流
- swift:创建九宫格
- 大道至简第四章
- Lua中的模块(module)和包(package)详解
- oracle 第28章 11gR2 ASM
- easyui 入门
- ubunut sublime text3 中文输入法问题
- Mahout-kmeans命令行文本文件聚类