文档章节

模板模式

跨界王子
 跨界王子
发布于 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 Cloud Greenwich 新特性和F升级分享

2019.01.23 期待已久的Spring Cloud Greenwich 发布了release版本,作为我们团队也第一时间把RC版本替换为release,以下为总结,希望对你使用Spring Cloud Greenwich 有所帮助 Greenwich 只支...

冷冷gg
35分钟前
40
1
精读《论语》读后感作文3600字

精读《论语》读后感作文3600字: 学而篇第一:子曰:“学而时习之,不亦说乎?有朋友自远方来,不亦悦乎?人不知,而不愠,不亦君子乎? 朱熹解:即学而又时时习之,则学者熟,而衷心喜悦,其...

原创小博客
52分钟前
0
0
CPU内存结构

开局一张图 由于CPU频率太快了,为解决直接读取内存的数据上的延迟,在CPU和内存之间,存在3级缓存。 CPU在解决和缓存不一致上采用两种方式: 缓存一致性协议 总线锁机制 CPU CPU的一个时钟周...

春哥大魔王的博客
55分钟前
1
0
记一次centos 7内核升级事故

情景 公司做等保3测评,在进行系统漏洞检测时发现内核存在漏洞,需要进行升级。 名称 版本 升级前内核 CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core) 升级后内核 CentOS Linux (3.10.0-957...

阿dai
今天
9
0
PowerDesigner操作

1.去掉生成DDL里的注释 Database -> Edit Current DBMS -> Script -> Syntax -> BlockComment,去掉BlockComment里面的value内容。...

了凡川
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部