经过几个小时(重新)搜索,我不能拿出一个正常的抽象类和使用模板模式之间的可解释的区别。模板方法模式与使用抽象(基类)类的区别?
我唯一看到的是: 同时使用一个抽象类,你都需要实现的所有方法。但是在使用模板方法的时候,你只需要实现那些抽象方法。
有人可以向我解释模板模式的优点和模板模式与抽象类的主要区别。
p.s.我只是想知道这更好的了我自己的理解/学习
编辑: 谢谢你的快速反应!但是我会更好地解释它(因为它已经以正确的方式:))。我知道抽象类是什么! (以及你必须实现哪些方法!),并且我知道模板模式(一种在类中定义的过程算法的骨架?)的基本思想。我有点困惑,因为他们看起来像一个!此外,我不是英语,所以我可能会监督一些事情! THNX提前
所以本质区别是:使用模板模式,您可以/必须实例化基类,您没有抽象类,但只有几个抽象方法可以在子类中唯一实现? – Dominique 2012-04-02 21:05:33
没有本质区别,因为它们根本不同,不能直接比较的概念。这就像问一辆出租车和一辆梅赛德斯的区别。有些出租车使用奔驰,但有些出租车使用菲亚特,甚至人力车或小船。在Java中,模板模式可以作为抽象类来实现。但它不一定是。例如,许多Spring框架的模板类都是非抽象类。但是当它们是抽象的时候,它们必须遵循Java的抽象类规则(即实现所有方法或保留“抽象”关键字)。 – 2012-04-02 22:31:59
但是两种实现都可以具有某种优势吗?我明白你的意思了!抽象类可以“强制”模板方法模式的实现,对吧?但它不一定是一个抽象类。其他(逻辑的)区别是,Abstract(类)是一个构造,Template是一个模式 – Dominique 2012-04-03 07:06:07