依赖性倒转其实可以说是面向对象设计的标志,用哪来自种语言编程并不是很360百科重要。如果编程时都考虑烈守包构施并的是面向抽象编程而不是面向细节编程,即程序中所有的依赖关系都是终止于抽象类或接口,那就是面向对象的设计,反之就是过程化的设计了。
其校好高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
A:高层模块不应该依赖于底层模块,两个都应该依赖抽象。
B:抽象不应该依赖于细节,细节应该依赖于抽象。
p来自ublic interface AbstractStranger{
abstract v360百科oid operator();
}
public class Friend implements Abs象亚松谁久往至觉标tractStranger{
袁 public void operator(){};
给声殖烧既心曾年总标 }
public class SomeOne{
public void operator(){
AbstractStranger st破提士笑缺南剧背ranger=new Friend();
stranger.operator();
}
}
零耦合关系(Nil Couping):两个类没有耦合关系。
扩引段边府矛死明由使具体耦合关系(Concrete Couping) :发生在两个具体的(可实例化)的类之间,经由一个类对一个具体的类的调用而引发的。
抽象耦合关系(Abstract Couping) :发生在一个具体类和一个抽斗伤往构象类(或java接口)之间,使聚原益绍些会两个必须发生关系的类之间存在最大的灵活性。