设计模式之模版方法模式

来源:互联网 发布:淘宝抢购技巧 编辑:程序博客网 时间:2024/05/19 12:13

一.模版方法模式

模版方法模式是最为常见的几种设计模式之一,而且你在工作中很可能已经使用过模板方法模式而你却没有意识到自己已经使用过这种模式,模版方法模式需要抽象类和具体子类协调完成,抽象类负责给出一个算法的轮廓和骨架,具体子类负责给出这个算法的各个逻辑步骤既具体子类负责填充这个轮廓和骨架,不同的子类有不同的填充方法;而将这些基本方法总汇起来的方法叫做模版方法,这个模板方法是在抽象类中以具体方法定义的

二.模板方法模式所涉及到得角色:

抽象模版角色:定义了一个或多个抽象操作以便让子类实现,这些抽象操作叫做基本操作,他们是一个顶级逻辑的组成步骤,定义并实现一个模版方法,这个模版方法就是一个具体方法,他给出了一个顶级逻辑的骨架,而逻辑的实现在相应的抽象操作中,推迟到子类中去实现。

具体模版角色:实现父类中定义的一个或多个抽象方法,他们是一个顶级逻辑的组成部分,不同的具体模版都可以给出这些抽象方法的实现,从而使得顶级逻辑的实现各不相同

三.举例:

看过《如何说服女生上床》这部经典文章吗?没看过去百度一下吧,从认识女生到上床的不变步骤是:巧遇,展开追求,牵手,接吻,……后面用不着不说了,一共八大步骤(Template method)这八大步骤是定义好的,你只要按照这八大步骤去实现就行了,但针对每个步骤不同的人不同的情况都有不一样的方法,这就要看你随机应变了,随机应变就是具体实现。

代码:

客户端调用:

 

四.总结:

准备一个抽象类,将部分逻辑以具体方法的形式实现,然后申明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。

 

继续努力,加油!

原创粉丝点击