当设计一个系统,不管他是什么对象,我们都需要注意他所交互的类有哪些,并注意这些类是如何交互的。该原则希望我们在设计中,不要让太多的类耦合在一起,免得修改系统中的一部分,会影响到其他部分。如果许多类之间相互依赖,那么这个系统就会变成一个易碎的系统,维护的成本也随之变得不可估量了。。。
如何遵守这个原则?
就任何对象而言,在该对象的方法内,应该调用(综合各种因素,尽量遵守):
a. 该对象本身;
b. 被当做方法的参数而传递进来的对象;
c. 此方法所创建的或实例化的对象;
d. 对象的任何组件。。。
代码示例A:(未遵守原则)
public float GetTemp()
{
C c = D.GetC();
return c.GetTemperature();
}
代码示例B:(遵守原则)
public float GetTemp()
{
return D.GetTemperature();
}
对比代码示例A,B。代码示例A中,从对象D中取到对象C,再从对象C中获取温度值;而代码示例B中,直接从对象D中获取温度值,这样可以减少我们所依赖的对象的个数。
代码示例C:(较全面)
public class Car
{
// 下面注释对应上面的原则(a,b,c,d)
Engine engine; // d
public Car() {}
public void Start(Key key) // b
{
Doors doors = new Doors(); // c
boolean bIsOK = key.Turns(); // b
if(bIsOK)
{
engine.Start(); // d
UpdateDash(); // a
doors.Lock(); // c
}
}
public void UpdateDash() {}
}
原文:http://www.cnblogs.com/hachun/p/3584267.html