模版模式
2021-01-13 本文已影响0人
小P_500d
模板模式是一种行为型的设计模式,在一个方法中定义算法框架,将某些步骤推迟到子类实现。
例子:
现在有一个需求,开发一个测试工具用于测试媒体的请求和我们给出的响应。媒体端传输的数据格式是protobuf类型的,不同的媒体端的protobuf定义是不一样的,需要将proto请求给系统,将系统的返回封装成媒体的proto响应。
其中有处理不同媒体的请求,和封装不同媒体的响应就可以推迟到子类进行实现,在父类定义整个逻辑。

request()方法定义了整个逻辑,public修饰,客户端可以直接调用,convertResp和convertReq都是由abstract修饰的,子类必须实现这两个方法。
模版模式带来的好处:
1:代码复用,request方法整体逻辑子类是复用的,不需要重新实现
2:可扩展,有新的对接过来直接继承基类,重写两个abstarct方法即可