文档章节

模板模式

跨界王子
 跨界王子
发布于 2017/05/19 11:59
字数 294
阅读 2
收藏 0

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

为了确保子类不能重写(override)这个模板方法,应当使用final

 

package templatemethod;

public abstract class AbstractChannel {
    /**
     * 发送消息
     *
     * @param msg 消息
     * @return 状态码
     */
    public final int send(String msg) {

        this.serializer(msg);

        //发送
        System.out.println("发送消息 : " + msg);

        return 0;
    }


    /**
     * 序列化消息
     *
     * @param msg 消息
     */
    protected abstract void serializer(String msg);
}
package templatemethod;

public class ProtobufChannel extends AbstractChannel {
    @Override
    protected void serializer(String msg) {
        System.out.println("protobuf 序列化 : " + msg);
    }
}
package templatemethod;

public class JsonChannel extends AbstractChannel {
    @Override
    protected void serializer(String msg) {
        System.out.println("json 序列化 : " + msg);
    }
}
package templatemethod;

public class TemplateMethodClient {
    public static void main(String[] args) {
        String msg = "msg";

        AbstractChannel jsonChannel = new JsonChannel();
        jsonChannel.send(msg);

        System.out.println();

        AbstractChannel protobufChannel = new ProtobufChannel();
        protobufChannel.send(msg);
    }
}
json 序列化 : msg
发送消息 : msg

protobuf 序列化 : msg
发送消息 : msg

HttpServlet类提供了一个service()方法.这个方法调用了一个或是多个do方法,完成对客户端发起的请求的处理,这些do方法则是由具体的HttpServlet类提供的.那么这里的service()方法就是一个摸板方法。

© 著作权归作者所有

共有 人打赏支持
上一篇: 原型模式
下一篇: 原型模式
跨界王子
粉丝 0
博文 2
码字总数 530
作品 0
沈阳
私信 提问

暂无文章

Spring核心概念--Spring01

小生初出程序茅庐,走上编程之路,还请各位大佬多多管照。 初学Spring框架: 创建HelloWorldSpring项目 用eclipse开发Web项目,添加jar包: commons-logging-1.2.jar log4j-1.2.17.jar spring-...

小橙子的曼曼
刚刚
0
0
MySQL 运行状态监控方法

一、通过shell脚本监控mysql的qps,tps,io详细见附件脚本《mysqlgather.sh》 因在脚本中直接设置密码会提示告警信息,需要在my.cnf文件中的[client]标签下增加默认的用户名和密码,并重启mys...

PeakFang-BOK
4分钟前
0
0
ROS实操笔记 四 topic (主题)

主题 消息以一种发布/订阅的方式传递。一个节点可以在一个给定的主题中发布消息。一个节点针对某个主题关注与订阅特定类型的数据。可能同时有多个节点发布或者订阅同一个主题的消息。总体上,...

placido
5分钟前
0
0
【NLP】【六】gensim之doc2vec

【一】总述 doc2vec是指将句子、段落或者文章使用向量来表示,这样可以方便的计算句子、文章、段落的相似度。 【二】使用方法介绍 1. 预料准备 def read_corpus(fname, tokens_only=False):...

muqiusangyang
8分钟前
0
0
node中process.nextTick & promise & 异步IO & setTimeout & setImmediate 的优先级

process.nextTick > promise > setTimeout > 异步IO > setImmediate

小草先森
14分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部