之前看到了很多,这里做一个总结,方便以后查阅。持续更新,之前的一些看过的没有完全想起来,以后看到再想。
模板方法设计模式
(一)HttpServlet抽象类中的service方法。首先这个方法有两个,第一个是检查是否是http协议,不是抛出异常,是的话传给第二个service方法。
第二个方法根据http报文方法参数类型(post,get等等)具体丢给对应的doGet,doPost方法处理。而在这个HttpServlet抽象类级别上,这些方法都是直接抛出异常。换句话就是期待子类继承它,然后用模板方法设计模式。子类一般不用重写来自HttpServlet的service方法,当请求到来的时候,先调用父类的service方法对请求进行甄别,然后调用具体的底层实现。
(二)底层容器类。大量使用这个设计模式,很多操作依赖底层的某些方法的具体实现
(三)IO包。比如对于InputStream,它的具体read方法交给底层自己实现,来实现上层封装可复用的代码(比如安全的检查,边界的控制),底层根据不同的媒介具体实现怎么“读” 注意这里还使用了装饰者模式。
(四)worker的逻辑,这里存疑,和模板方法设计模式有类似的地方,但是又不全是。
时间: 2024-11-10 15:41:27