一,扩展性
耦合性低能具有良好的扩展性
二,完全解耦
通俗来讲耦合就是依赖关系;某某耦合说明这两者的依赖性很强,谁也离不开谁;而解耦就是要把这层依赖关系给破坏掉;
尽最大程度的降低程序的耦合性可以是程序具备良好的扩展性,易于修改。
较为具体的说明就是有的时候程序需要修改,我只需要改正一部分,单是如果程序的耦合性很强的话就需要从头再写一遍很不划算,而正常的开发中都是改那部分,重写那部分,把配置文件一改就成了,java中通过接口(interface),spring技术中的ioc等实现的解耦合
三,统一访问:就是更方便的new各个类吧
比如和红路灯比较:
制定者是国家:接口
实现者是各大十字路口:实现类
使用者是路人:main函数
练习了解接口的作用:项目经理和三个员工,经理给他们统一分配任务,求两个数的最大数,然后验收。这道题体现了接口的三种作用
###################
高耦合:
人睡觉认床
一个六头的插销只能插在六头的插座上
一个人一辈子只爱一个人
低耦合:人见床就睡
一个插头能插上在任意多功能插销上
一个人见一个爱一个,边走边爱
完全解耦:完全解耦可以换成本类对象以及本类对象以下的所有子类,甚至可以跨继承体系更换对象,前提是先实现接口
触霉头:来自己与java编程思想
只要一个方法操作的是类而非接口,那么你就只能使用这个类及其子类。如果你想要将这个方法应用于不在此继承结构中的某个类,那么你就会触霉头了。接口可以再很大程度上放宽这种限制,因此,它使得我们可以编写可复用性更好的代码。
四,啥时候用接口,啥使用抽象类 ?
***基本功能用抽象类,扩展功能用接口
1,抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。
2,接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情。