大话设计模式----模板方法模式

来源:互联网 发布:Mac怎么改变照片日期 编辑:程序博客网 时间:2024/06/05 16:20

首先先强调,这是一个很常用过的设计模式,基本在一些程序员的手里随处可见这种模式的影子,所以很重要。

我们先来强调一下继承的意义,如果我们用了继承,并且肯定这个继承有意义,那么这个父类就应该要成为子类的模板,所有重复的代码都应该要上升到父类上去,而不是让每个子类都去重复。

那么我们什么时候用模板方法模式呢?(模板方法模式的应用场景)

当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。

那么什么是模板方法模式呢?

模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

理解一下这个定义,换句话说,模板方法模式是通过把不变的行为搬到父类,去除子类中的重复代码来体现它的优势。模板方法模式就是提供了一个很好的到吗复用平台。因为有的时候,我们会遇到由一系列步骤构成的过程需要执行。这个过程从高层次上看是相同的,但有些步骤的实现可能不同。这时候,我们通常就应该要考虑用模板方法模式了。

当不变的和可变的行为在方法的子类实现中混合在一起时候,不变的行为就会在子类中重复出现,我们通过模板方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱重复的不变的行为的纠缠。

最后我们来看一下模板方法模式的UML类图:

原创粉丝点击