覆盖或监听

时间:2017-05-12 12:03:33

标签: java constructor listener

  • 假设我有一个实现某种方法的父类,例如addElement(Element e)
  • 此外,该类提供了在添加元素时添加侦听器的可能性,例如addElementAddListener(ElementAddListener listener)

如果我是这个类的子类,并且如果添加了一个元素则需要执行其他功能,如果最好在构造函数中添加侦听器覆盖,那么是否有建议/最佳实践方法

每种方法都有任何好处/缺点吗?

2 个答案:

答案 0 :(得分:2)

如果要更改添加元素的方式和位置,则可以使用覆盖。

如果您只是在之后执行其他功能,则添加一个元素,那么侦听器更合适。

我建议在你的情况下添加一个监听器。

答案 1 :(得分:1)

我看到addElement中的代码 - 元素持有者类的方法(让我们称之为" A类和#34;)和听众中的代码之间存在语义差异。

addElement负责向A类正确添加新元素,而对此列表感兴趣的每个人都可以添加一个监听器来获取有关新增内容的信息 - 进行其他操作。

所以我希望所有代码都必须正确地将一个元素添加到A类中的元素列表中,以便在addElement - 方法中,而任何侦听器中的代码都不会改变元素列表中的任何内容。 A类,但做其他事情。

所以我的答案是:它取决于附加功能是什么。如果它直接与添加元素有关,则它属于addElement,如果它对新元素或列表没有任何作用,它可以放在一个监听器中。