模板方法模式和使用抽象(基类)之间的区别



经过几个小时的重新搜索,我无法在普通抽象类和使用模板模式之间找到可解释的区别。

我唯一看到的是:在使用抽象类时,需要实现所有方法。但是,在使用Template方法时,您只需要实现这两个抽象方法。

有人能向我解释一下模板模式的优点以及模板模式和抽象类之间的主要区别吗。

p.s.我只是想更好地了解这一点,以便我自己理解/研究

编辑:感谢您的快速响应!但我会更好地解释它(因为它已经朝着正确的方向发展了:)。我知道什么是抽象类!(以及类中必须实现的方法!),我知道模板模式(一种在类中定义的过程算法的骨架?)的基本思想。我有点困惑,因为它们看起来很像!而且我不是英国人,所以我有可能监督一些事情!THNX提前

正如您所说,Template是一种模式。抽象类是一种特定于语言的构造,可用于实现模板。有些语言(例如Python或JavaScript)没有抽象类的概念,但这并不意味着你不能在其中实现Template,只是你必须使用不同的契约。

在一种语言中提供抽象类的一个优点是,您可以在编译时强制实现所需的模板方法(契约)。在像JavaScript这样的语言中,合同不能强制执行,只能通过约定/文档指定。

抽象类是实现模板模式的一种方法。但这并不是它的唯一用途。

将模板模式想象为抽象类的子集。这应该能消除你的疑虑。

从技术上讲,没有更好的词。区别在于我们使用它的方式。

最新更新