博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《设计模式系列》---模板方法
阅读量:6949 次
发布时间:2019-06-27

本文共 1802 字,大约阅读时间需要 6 分钟。

hot3.png

模板方法: 通过把不变的行为搬移到超类,去除子类中的重复代码来体现他的优势.很好的代码复用平台.

/** * @author stefanie zhao * @date 2014-8-15 下午03:05:31 */public abstract class AbstractClass {    public abstract void primitiveOperation1();    public abstract void primitiveOperation2();    public void templateMethod() {        primitiveOperation1();        primitiveOperation2();    }}
/** * @author stefanie zhao * @date 2014-8-15 下午03:06:57 */public class ConcreteClassA extends AbstractClass {    /*     * (non-Javadoc)     *      * @see us.echo.pattern.template.AbstractClass#primitiveOperation1()     */    @Override    public void primitiveOperation1() {        System.out.println("concreteClass A   op 1");    }    /*     * (non-Javadoc)     *      * @see us.echo.pattern.template.AbstractClass#primitiveOperation2()     */    @Override    public void primitiveOperation2() {        System.out.println("concreteClass A   op 2");    }}
/** * @author stefanie zhao * @date 2014-8-15 下午03:06:57 */public class ConcreteClassB extends AbstractClass {    /*     * (non-Javadoc)     *      * @see us.echo.pattern.template.AbstractClass#primitiveOperation1()     */    @Override    public void primitiveOperation1() {        System.out.println("concreteClass B   op 1");    }    /*     * (non-Javadoc)     *      * @see us.echo.pattern.template.AbstractClass#primitiveOperation2()     */    @Override    public void primitiveOperation2() {        System.out.println("concreteClass B   op 2");    }}
public class Main {    /**     * @Description: TODO     * @param @param args     * @return void     * @throws     */    public static void main(String[] args) {        AbstractClass c = new ConcreteClassA();        c.templateMethod();        c = new ConcreteClassB();        c.templateMethod();    }}

转载于:https://my.oschina.net/stefanzhlg/blog/308149

你可能感兴趣的文章
我的软件工程课目标
查看>>
MYSQL 连接数据库命令收藏
查看>>
C#基础篇六飞行棋
查看>>
汇编语言(王爽)第一章基础知识
查看>>
在创业型软件公司的收获
查看>>
Build SSH for Development on Windows Subsystem for Linux
查看>>
学习:数学----容斥原理
查看>>
WebSite And WebApplication
查看>>
Georgia Tech Online Master of Science in Computer Science 项目经验分享
查看>>
字王珐琅体系列,初稿ok
查看>>
浏览网上资源,了解编译原理就是什么?学习编译原理有什么好处?不学有什么损失?如何学习编译原理?...
查看>>
LeetCode 226. Invert Binary Tree
查看>>
空虚、寂寞、无聊
查看>>
基础学习笔记之opencv(1):opencv中facedetect例子浅析
查看>>
JS中属性/方法调用
查看>>
iOS 7 需要再和 Android 比什么
查看>>
8-Images
查看>>
Python字节码与解释器学习
查看>>
面试题
查看>>
PYTHON-函数对象,嵌套,名称空间与作用域,闭包函数
查看>>