本文小编为大家详细介绍“Java设计模式之模板方法模式实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java设计模式之模板方法模式实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。模板方法模式法(Template Method
)定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。模板方法模式包含以下主要角色:抽象类(Abstract Class
):负责给出一个算法的轮廓和骨架。它由一个模板方法和若干个基本方法构成。抽象方法(Abstract Method
) :一个抽象方法由抽象类声明、由其具 体子类实现。具体方法(Concrete Method
) :一个具体方法由一个抽象类或具体类声明并实现,其子类可以进行覆盖也可以直接继承。钩子方法(Hook Method
) :在抽象类中已经实现,包括用于判断的逻辑方法和需要子类重写的空方法两种。一般钩子方法是用于判断的逻辑方法,这类方法名一般为isXxx,返回值类型为boolean类型。模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法。基本方法:是实现算法各个步骤的方法。基本方法又可以分为三种:具体子类(Concrete Class
):实现抽象类中所定义的抽象方法和钩子方法,它们是一个顶级逻辑的组成步骤。【案例】炒菜的步骤是固定的,分为倒油、热油、倒蔬菜、倒调料品、翻炒等步骤。但是可以倒入不同的蔬菜和不同的酱料。现通过模板方法模式来用代码模拟【运行结果】倒油
热油
加入包菜
加入辣椒酱
炒啊炒
————-
倒油
热油
加入白菜
加入盐和味精
炒啊炒Process finished with exit co免费云主机域名de 0优点:1、提高代码复用性,将相同部分的代码放在抽象的父类中,而将不同的代码放入不同的子类中。2、实现了反向控制,通过一个父类调用其子类的操作,通过对子类的具体实现扩展不同的行为,实现了反向控制 ,并符合“开闭原则”。缺点:1、对每个不同的实现都需要定义一个子类,这会导致类的个数增加,系统更加庞大,设计也更加抽象。2、父类中的抽象方法由子类实现,子类执行的结果会影响父类的结果,这导致一种反向的控制结构,它提高了代码阅读的难度。1、算法的整体步骤很固定,但其中个别部分易变时,这时候可以使用模板方法模式,将容易变的部分抽象出来,供子类实现。2、需要通过子类来决定父类算法中某个步骤是否执行,实现子类对父类的反向控制。读到这里,这篇“Java设计模式之模板方法模式实例分析”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。
本篇内容主要讲解“php中如何转义特殊字符”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中如何转义特殊字符”吧! 反斜线()在PHP中,反斜线()是用来转义特殊字符的最常见的字符。当我们需要在字符串中包含一个…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。