以上就是我们的模板方法了,典型特点就是采用了继承的方式来处理,而不是委托的方式。
从上面的代码中,我们可以看出,我们将顶级方法定义为fianl,这样子类就无法修改该方法,就达到了顶级规则不允许改变的原则。
同时将被实现的方法修饰了protect,如果是为子类及同包的类才能继承,达到权限控制的目的。因为客户端不关心这些方法。
比较常见的模板方法就是servlet。 加载--init--service--destory--释放内存
如果哪天编剧说再加个情节吧。那就加上重生环节吧。可以理解为原来的各个环节中,我们把重生这个环节默认为重生成功了。
//电影 阿凡达
public abstract class Avatar
{
//电影上演
public final void play()
{
daRu();
ooxx();
epiphqny();
fight();
end();
}
//以下就是我们定义的顶级规则,只能去实现,无权修改流程
//打入精灵内部
protect abstract void daRu();
//发生纯洁关系
protect abstract void ooxx();
//重生
protect void epiphqny()
{
//todo 重生了--成功
}
//与城管的生死搏斗
protect abstract void fight();
//路人挂,美女归
protect abstract void end();
protect void luRenJia()
{
//我是路人甲
}
}
那我们的阿汤哥的实现可以覆盖重生,也可以不覆盖重生,因为已经有一个默认的实现了。
理论讲解:
一般模板方法中的方法我们区分为:
方法:
---模板方法:定义顶级规则的方法,本案中的play()方法
---基本方法
---抽象方法:抽象类提供一个抽象方法,具体由子类来实现。本案中daRu()方法
---具体方法:由抽象类声明并实现,子类并不实现或置换。本案中luRenJia()方法
---钩子方法:由抽象类声明并实现,子类会加以扩展。一般抽象类空实现,具体由子类来实现,本案中的epiphqny();
分享到:
相关推荐
设计模式--模板方法模式java例子
JAVA-设计模式-行为型模式-模板方法模式
设计模式专题之(十三)模板模式---设计模式模板模式示例代码(python--c++)
设计模式-模板方法模式(讲解及其实现代码)
c++设计模式-行为型模式-模板方法模式;qt工程;c++简单源码; 模板方法(Template Method)模式的定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重...
适合20分钟左右讲解的模板方法模式。 自己上课用的。
Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现
java的23种常用设计模式:模板方法模式
java设计模式中的模板模式,纯Java代码
PPT内容包括:内附代码,实例,方便理解。 继承、封装、多态、UML 设计模式02 设计模式03-创建型模式 ...设计模式16-策略模式、模板方法、访问者 此PPT实例便于理解,对于深入理解OO思想有很大帮助。
新模式-html网页模板, 我做了三年的.net开发了, 至今为止觉得是美工设计的最好的一款网页了, 只是参考,不能作为商业用途哈,如果是引起什么法律 纠纷,请不要来找我哦, 大家都是搞IT的,都明白这个道理哈,
设计模式的模板方法模式的例子,希望对大家有用~~~~~~~~
logo 14模板方法模式:抽象类定义final方法模板方法模式:抽象类定义final方法 设计模式(JAVA语言实现)--20种设计模式附带源码PPT模板全文共22页,当前为第15页。 logo 15观察者模式:观察者接口和类、主题接口...
模板模式的定义 模板模式的结构 模板模式的角色 模板模式的方法 模板模式的优点 模板模式的案例
创建型模式,共五种:工厂方法模式、抽象工厂模式、...行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
设计模式C++学习之模板方法模式(Template Method)
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定的步骤。