文档章节

模板模式

跨界王子
 跨界王子
发布于 2017/05/19 11:59
字数 294
阅读 2
收藏 0
点赞 0
评论 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
沈阳

暂无文章

CORS 跨域实践

本文首发于个人微信公众号《andyqian》,期待你的关注~ 前言 系统通常都是由单体应用逐渐演化而来,演化成为前后端分离的分布式应用。在享受分布式系统带来的诸多好处之时,随之而来的也有不...

andyqian
9分钟前
6
0
开源 java CMS - FreeCMS2.8 会员管理

项目地址:http://www.freeteam.cn/ 会员组管理 会员管理 会员管理 从左侧管理菜单点击会员管理进入。 添加会员 在会员列表下方点击“添加”按钮。 填写相关属性后点击“保存”按钮即可。 编...

freeteam
10分钟前
0
0
bboss升级至 v5.0.6.8版本,改善对Elasticsearch SQL 的支持

v5.0.6.8功能改进如下: (1)持久层支持支持Elasticsearch SQL,使用参考文档:玩转Elasticsearch SQL功能 (2)解决持久层/elasticsearch模板变量解析多层级不起作用问题 (3)完善国际化功能 (4...

linux-tao
11分钟前
0
0
扫码二维码跳转到某个网站

添加maven依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.0.0</version></dependency><dependency><groupId>com.goog......

gaomq
18分钟前
0
0
Windows平台下搭建Git服务器的图文教程

Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在windows下的开发要把自己...

MKChan
24分钟前
0
0
告警系统主脚本&告警系统配置文件&告警系统监控项目

20.20 告警系统主脚本 准备工作 定义监控系统的各个目录,然后再去定义主脚本,因为是分布式的,所以需要每一台机器都需要定义,事先创建好各个脚本和各个目录,随后脚本直接拷贝过去即可,然...

影夜Linux
24分钟前
0
0
谈谈神秘的ES6——(一)初识ECMAScript

谈谈神秘的ES6——(一)初识ECMAScript 在《零基础入门JavaScript》我们就说过,ECMAScript是JavaScript的核心,是JavaScript语法和语义的解释器,同时也是一个标准。而ECMAScript标准其实也...

JandenMa
今天
1
0
第16章 Tomcat配置

16.1 Tomcat介绍 ####Tomcat介绍 LNMP架构针对的开发语言是PHP语言,php 是一门开发web程序非常流行的语言,早些年流行的是asp,在Windows平台上运行的一种编程语言,但安全性差,就网站开发...

Linux学习笔记
今天
1
0
流利阅读笔记29-20180718待学习

高等教育未来成谜,前景到底在哪里? Ray 2018-07-18 1.今日导读 在这个信息爆炸的年代,获取知识是一件越来越容易的事情。人们曾经认为,如此的时代进步会给高等教育带来众多便利。但事实的...

aibinxiao
今天
12
0
OSChina 周三乱弹 —— 你被我从 osc 老婆们名单中踢出了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小鱼丁:分享五月天的单曲《后来的我们 (电影《后来的我们》片名曲)》: 《后来的我们 (电影《后来的我们》片名曲)》- 五月天 手机党少年们想...

小小编辑
今天
810
20

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部