模板模式

模板模式

背景:现在做着的项目需要把收到的字节流Message封装成对象,方便上层逻辑处理,但是每一条信息的格式又不完全一样,所以就想到了用模板模式来处理,其实我写的都是没有觉得这是个模板模式,后来翻书才知道..

首先是定义一个抽象父类:

/**
*
* ByteBuf是netty里的一个类,和nio里的ByteBuffer一个功能
**/
public abstract class InMessage {
    private byte type;
    private int struct;
    private short applicationAddress;
    
    public InMessage(byte type,int struct, short applicationAddress, ByteBuf buf) {
        super();
        this.type = type;
        this.struct = struct;
        this.applicationAddress = applicationAddress;
        generateData(buf);
    }
    
    //所有继承InMessage的子类都需要重写generateData方法,这里其实才是实际上封装对象处理逻辑的地方
    protected abstract void generateData(ByteBuf buf);

}

总结:

模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容