首页 > 其他 > 详细

OO设计原则——最少知识原则

时间:2014-03-06 19:33:19      阅读:456      评论:0      收藏:0      [点我收藏+]

  当设计一个系统,不管他是什么对象,我们都需要注意他所交互的类有哪些,并注意这些类是如何交互的。该原则希望我们在设计中,不要让太多的类耦合在一起,免得修改系统中的一部分,会影响到其他部分。如果许多类之间相互依赖,那么这个系统就会变成一个易碎的系统,维护的成本也随之变得不可估量了。。。

  如何遵守这个原则?

  就任何对象而言,在该对象的方法内,应该调用(综合各种因素,尽量遵守):

  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() {}

}

OO设计原则——最少知识原则,布布扣,bubuko.com

OO设计原则——最少知识原则

原文:http://www.cnblogs.com/hachun/p/3584267.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!