A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王婷婷 中级黑马   /  2013-4-14 16:40  /  1212 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王婷婷 于 2013-4-20 21:32 编辑

如何理解模板方法模式?  通俗点

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

3 个回复

倒序浏览
摸板方法(Template Method)模式是一种非常简单而又经常使用的设计模式.先创建一个父类,把其中的一个或多个方法留给子类去实现,这实际上就是在使用摸板模式.所谓的摸板模式可以这样来理解:"在一个类中定义一个算法,但将此算法的某些细节留到子类中去实现.换句话说,基类是一个抽象类,那么你就是在使用一种简单形式的摸板模式."

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

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
模板方法模式定义一个操作中算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.

其实就是一个抽象的父类其中有一部分算法结构是具体实现的,实现的这部分基本是不改变的。然后需要变化的部分就在继承的时候子类来实现。这个东西就涉及到继承而已。可能你编程的时候用到过,只不过没有把它给定义化。

再通俗一点,就比如我们要装一个电脑的主机。然后电脑的内部结构都一样。主板啊,内存,硬盘什么的。我们装不一样的电脑用的事不一样型号和性能的组件,但是结构没变。装出来的电脑虽然个不一样,但是都是能运行的计算机。

不知道这么说你能明白不。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
你好,
模板方法模式举个例子,
有一个类ClassA,他里面有2个方法,a和b,a方法一定会调用b方法,而b方法内的代码不确定。
着把a方法私有,把b方法暴露出去由子类去重写b方法。创建父类对象。调用a方法完成功能。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马