黑马程序员技术交流社区

标题: 模板方法模式? [打印本页]

作者: 王婷婷    时间: 2013-4-14 16:40
标题: 模板方法模式?
本帖最后由 王婷婷 于 2013-4-20 21:32 编辑

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


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

      更近一步可以这样来理解:"准备一个抽象类,将部分逻辑以具体方法的形式实现,然后申明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方法实现这些抽象方法,从而对剩余的逻辑有不同的实现."
作者: love_java    时间: 2013-4-14 18:09
模板方法模式定义一个操作中算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.

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

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

不知道这么说你能明白不。
作者: liuyangyang    时间: 2013-4-14 18:55
你好,
模板方法模式举个例子,
有一个类ClassA,他里面有2个方法,a和b,a方法一定会调用b方法,而b方法内的代码不确定。
着把a方法私有,把b方法暴露出去由子类去重写b方法。创建父类对象。调用a方法完成功能。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2