在项目的开发过程中,我们经常强调项目的代码模块尽量做到低耦合高内聚,但是什么是耦合?怎样做到低耦合?
01-什么是耦合?
耦合指的就是两个类之间的联系的紧密程度,
看下面这段代码:
public class A{public int i;}public class B{public void put(A a){System.out.println(a.i);}}
上面这个例子中A类和B类之间存在一种强耦合关系,B类的put方法参数必须是A类类型,不可以是非A类类型。有强耦合关系当然也存在所谓的弱耦合关系,
请看下面这段代码:
//【基类】public class BaseClass{public virtual void say(){Debug.Log("I am Base");}}public class A : BaseClass{public override void say(){Debug.Log("I am A");}}public class B : BaseClass{public override void say(){Debug.Log("I am B");}}public class Main{public void put(BaseClass baseOb){baseOb.say();}}
上面这段代码中Main类与A类、B类之间就存在一种弱耦合关系,Main类的put方法的参数可以使A类类型也可以是B类类型,不像强耦合关系中必须是A类类型其他类型皆不可的情形。
02-怎么实现低耦合
实现低耦合就是对两类之间进行解耦,解除类之间的直接关系,将直接关系转换成间接关系,下面来提供两种解耦思路进行解耦,解除类之间的直接关系,将直接关系转换成间接关系,下面来提供两种解耦思路。
02.01 多态性
使用继承,使用类的向上转型或接口回调的方式进行解耦 这两个方式其实都是一种思想,都是利用多态的思想,上面的弱耦合样例代码是接口回调的方式。
