模版方法

来源:互联网 发布:淘宝红号查询 编辑:程序博客网 时间:2024/04/25 19:32

模版方法模式

 

先看UML

 

 

 

 

模版方法其实就是利用继承性,提取公共代码到极致,最大程度上减少不变代码在子类中出现,对代码最大程度上复用。一些方法的大体结构也可能保持不变,就可以想办法抽取出来,然后具体细节不同的话再交给子类去实现。打个比方,一般情况下我们考试是怎么样的,一份试卷打印好多份,然后每个人在上面填写答案。这样每一分试卷都是各自一个类,然后我们在上面写答案完成答题的操作。这样就产生了大量的重复题目。

我们想想,这是公共的代码可以提取到父类么,题目是公共的,正确答案是公共的,甚至展示在我们的形式都是一致的。还有一些我们虽然看不到,但是也是公共的,就是对分数的计算,这就算是一个算法骨架吧,获取回答答案,判断与正确答案是否相同,在把分数累加。 而这个过程中只有填写答案的细节是有变化的。

这时模版方法就像有些老师会把题目放到大屏幕上,然后每个同学仅仅实现填写答案的方法,然后交上去,老师利用计算分数的算法骨架,结合不同的实现细节也就是不同的同学的答案,得出不同的算法结果,避免学生人手一份题目造成代码冗余。

 

模版方法就是提供了一个很好的代码复用平台,属性很容易区分公共与私有,但是一些算法会出现不变与变化的混合,造成不变代码在子类总重复,模版方法通过将方法分离,将不变提取到父类构成方法模模版,再把变化抽象,由子类去实现,帮助子类拜托冗余代码。

0 0
原创粉丝点击