java 里面耦合和解耦

百度解释:

耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。

解耦就是用数学方法将两种运动分离开来处理问题。

这是形象搞笑的比喻:
完全可以这么想像嘛,有一对热恋中的男女,水深火热的,谁离开谁都不行了,离开就得死,要是对方有一点风吹草动,这一方就得地动山摇。
可以按照琼瑶阿姨的路子继续想象,想成什么样都不过分,他们之间的这种状态就应该叫做“偶合”。

他们这么下去,有人看不惯了,有一些掌握话语权的权利机构觉得有必要出面阻止了,这样下去不是个事吖,你得先爱祖国,爱社会,爱人民,爱这大好河山才行啊,
于是棒打鸳鸯,让他们之间对对方的需要,抽象成一种生理需要,这就好办了,把她抽象成女人,他抽象成男人,当他需要女人时,就把她当做女人送来,反之亦然,
看上去他们仍在一起,没什么变化,实质上呢,他们已经被成功的拆散了,当有一天他需要女人时,来了另外一个女人,嘿嘿 他不会反对的。
对方怎么变他也不会关心了。这就是“解偶”。

较为具体的说明就是有的时候程序需要修改,我只需要改正一部分,单是如果程序的耦合性很强的话就需要从头再写一遍很不划算,而正常的开发中都是改那部分,重写那部分,
把配置文件一改就成了,java中通过接口(interface),spring技术中的ioc等实现的解耦合,重写覆盖父类的方法也是一种解耦行为

转:https://zhidao.baidu.com/question/

因为多态的特性,父类或者接口的引用是可以接受子类对象的。 比如: interface Test{} class Test1 implements Test{} class Test2 implements Test{} 上面声明一个Test接口,两个类Test1和Test2,分别实现Test接口。 表现耦合低的意思是说,删除调用层与接受层无关,比如:有这样一个方法可以这样设置参数类型 void say(Test test){System.out.println("");} 然后调用时可以这样传参数 Test1 t1 = new Test1(); Test2 t2 = new Test2(): say(t1); 或 say(t2); 这就是降低耦合,say方法只需要接口类型,具体传入哪个对象是无需关注的,因为接口是一种规则,say方法进来的参数一定是实现Test接口类的对象。即使有一天将Test1与Test2两个类删除,Test接口还在,那么say方法就有用,并且随意扩展一个新的类来实现Test接口,这叫做向后兼容。