编程思想-解耦
来源:互联网 发布:淘宝三大苹果店 编辑:程序博客网 时间:2024/06/04 19:04
解耦方法有但不限有如下几种:(百度解释前三种)
(a)采用现有设计模式实现解耦,如事件驱动模式、观察者模式、责任链模式等都可以达到解耦的目的;
(b)采用面向接口的方式编程,而不是用直接的类型引用,除非在最小内聚单元内部。但使用该方法解耦需要注意不要滥用接口。
(c)高内聚,往往会带来一定程度的低耦合度。高内聚决定了内部自行依赖,对外只提供必须的接口或消息对象,那么由此即可达成较低的耦合度。
( d )注解,以注解的方式,将方法,属性注入依赖,实现高扩展性。
解耦总的一句话来说,减少依赖,抽象业务和逻辑,让各个功能实现独立。
比如:
class A{
public void do();
}
class B{
public void do();
}
class C{
private A a;
void showA(A a){
a.do();
}
}
C依赖于A,又依赖于B,耦合度高。
解耦如下:
interface I{
void do();
}
clas A implements I{
public void do();
}
clas B implements I{
public void do();
}
class C{
private I i;
void show(I i){
i.do();
}
}
当然这只是其中一种情况。低耦合总的规则就是:
1、上层模块不依赖于底层模块
2、控制反转,比如:去餐馆吃饭,付钱让厨师做,这是正常的控制流程(相当于客户端发交易到服务端);
现在改为去吃自助烧烤的方式,自己选择烧烤哪些肉类,大龙虾,肉串,鸡腿等,这就是控制权在自己手上(相当于客户端控制服务端)。
3.注解下一篇再单独总结。
知乎解答:
http://www.zhihu.com/question/20821697
0 0
- 编程思想-解耦
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 编程思想
- 字符串指针与字符数组的区别
- selector的使用及执行流程
- Java-servlet-01
- Java设计模式之策略模式
- Libusb添加盘符,hub设备port个数功能(windows)
- 编程思想-解耦
- 三维数组使用单变量访问,类的大小
- android常见面试模块
- 20位活跃在Github上的国内技术大牛
- C语言内存管理
- Java-TCP/IP 编程-01 主线程:从控制台录入消息,发送到服务器 子线程:接收服务器转发来的消息
- 2 json与json字符串
- PAT 1011. World Cup Betting (20)(浮点数乘法)
- Java-TCP/IP编程-02 * 客户端: 主线程:从控制台录入消息,发送到服务器 子线程:接收服务器转发来的消息