事件或抽象方法,最佳实践

时间:2009-12-28 23:11:49

标签: oop coding-style class-design

子类需要知道特定事件何时与其超类一起发生,但超类有多种方法可以打破新闻。这是2:

  • 派遣活动
  • 调用子类最终可以覆盖的抽象方法

我想知道最佳做法是否会推荐其中一种方法。

P.S。当我想到这个问题时,我正在使用ActionScript。

4 个答案:

答案 0 :(得分:2)

这取决于您尝试解决的问题的性质。子类完成的处理是否需要异步?如果是这样,那就是支持基于事件的设计的论据。那些不是你班级子类的东西想知道吗?这是支持基于事件的设计的另一个论点。除此之外,最简单的方法是提供一个抽象的方法,作为逻辑的钩子,因为这是程序员所期望的很多(根据我的经验)。

答案 1 :(得分:2)

这里没有“最好”的方法,两者都有不同的语义,我将在这里概述。

覆盖方法:

  • 比代表更快
  • 强制子类覆盖(抽象方法)
  • 仅调用子类方法,而不调用父类
  • - >如果要更改类的行为,请使用方法覆盖

<强>活动:

  • 注册多个事件处理程序而不是一个
  • 简易异步操作
  • - &GT;如果要补充/扩展类
  • 的行为,请使用事件

答案 2 :(得分:0)

OOP是关于向对象发送消息的对象。最好的方法是定义一个方法并覆盖它。

当然,你提出了一个错误的二分法:当你派遣一个事件时,它最终会调用一些类的方法,这可能会被覆盖。

答案 3 :(得分:0)

抽象方法最好。通过此次活动,您将引入不必要的复杂性。