首先,说一下,如果用了继承,并且肯定这个继承有意义,就应该要成为子类的模板,所有重复的代码都应该要上升到父类中去,而不是让每个子类都去重复。
当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时。我们通常考虑用模板方法模式来处理。
模板方法模式:
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中去。模板方法使得子类可以不改变一个算法的结构即可重定义某些特定的步骤。
模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。模板方法模式提供了一个很好的代码复用平台。因为有些时候,我们会遇到由一系列步骤构成的过程需要执行。这个过程从高层次上看是相同的,但有些步骤的实现可能不同。这个时候,我们通常就应该要考虑用模板方模式了。
也就是说,碰到这个情况,当不变的和可变的行为在方法的子类实现中混胡在一起的时候,不变的行为就会在子类中重复出现。我们通过模板方法模式把这些行为搬到单一的地方,这样帮组子类摆脱重复的不变行为的纠缠。
当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时。我们通常考虑用模板方法模式来处理。
模板方法模式:
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中去。模板方法使得子类可以不改变一个算法的结构即可重定义某些特定的步骤。
模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。模板方法模式提供了一个很好的代码复用平台。因为有些时候,我们会遇到由一系列步骤构成的过程需要执行。这个过程从高层次上看是相同的,但有些步骤的实现可能不同。这个时候,我们通常就应该要考虑用模板方模式了。
也就是说,碰到这个情况,当不变的和可变的行为在方法的子类实现中混胡在一起的时候,不变的行为就会在子类中重复出现。我们通过模板方法模式把这些行为搬到单一的地方,这样帮组子类摆脱重复的不变行为的纠缠。