各位大神,Java的模板模式和单纯的继承有什么不同?好处在哪里?

各位大神,Java的模板模式和单纯的继承有什么不同?好处在哪里?

模板模式是指定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。
模板模式的优点
模板方法模式通过把不变的行为搬移到超类,去除了子类中的重复代码。
子类实现算法的某些细节,有助于算法的扩展。
通过一个父类调用子类实现的操作,通过子类扩展增加新的行为,符合“开放-封闭原则”。
缺点
每个不同的实现都需要定义一个子类,这会导致类的个数的增加,设计更加抽象。

其实还是继承。只是有一些设计上的理念在里面。

http://www.2cto.com/kf/201205/131108.html

语言提供的继承是你能实现模板设计模式的前提。模板模式依赖继承这种语言特性。

这个没法比,几乎所有的设计模式都用到继承,包括策略模式、命令模式等等,都实现了类似的需求,但是各有各的场景。

你可以拿模板和策略去比。你实在没法拿模板和“继承”去比。好比你可以拿手机和对讲机去比,但是没法拿手机和塑料去比,或者拿手机和芯片去比。

http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html

一个是设计模式,一个是语言特性,所有的设计模式都是依赖于语言特性,之所以有设计模式,是为了更好的利用语言特性

继承是语言的特性,设计模式是一种固定的使用方式,个人觉得两者之间的优势比较难说,只能从两者的特点去说。