获取行为的顺序

1.行为的查找顺序

    在动态模型编程中,对象的行为可以在自身的模型中定义,也可以继承于描述者(类)和被继承的模型,了解行为的获取顺序很重要。

  1. 查找一个对象的行为首先查看对象模型本身是否已经定义了,如果定义了那么返回。
  2. 如果对象自身没有定义一个行为,那么其次从它的描述者模型本身去查找,如果找到了则返回。
  3. 如果描述者自定没有定义,那么从继承的模型对象本身去查找,如果找到了则返回。
  4. 如果还没有找到行为,那么查找描述者所继承的行为,包括描述者的描述者和描述者所继承的所有模型的行为。
  5. 如果还没有找到行为,那么查找被继承的模型所继承的行为,包括被继承的描述者以及被继承的模型所继承模型的行为。
  6. 如果还没有找到,那么代表无效行为,执行时不会抛出异常,而是什么也不做,直接返回null。

2.行为的变更

    查找行为时是按照一定顺序查找的,为了这个查找路径是被缓存着的,但是当查找路径上的任何一个模型对象发生了变化,比如修改了属性等,那么该行为会重新查找。

    有了行为的变更机制等,可以随时修改和重写对象的行为,修改后也能够及时生效。

3.避免执行无效行为

    执行一个对象所没有定义的行为是非常没有效率的,应该避免,因为无效行为不能被记录在查找路径缓存里。

 

 

Copyright ©  2007-2017 XWorker.org  版权所有

沪ICP备08000575号