设计模式
文章平均质量分 70
java_大胡子
这个作者很懒,什么都没留下…
展开
-
设计模式之包装器/wapper/装饰模式的应用
简介装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。在很多博文里会引入Decorator角色,觉得把简单问题复杂化了。等下看一下Request的应用就知道实际用起来比类图简单的多。源码中的应用以RequestWrapper为例,这是一个十分有代表性的类。在debug的时候经常会发现,request套了一个又一个,因为他们一直在互相wrapper。点到最后才看到request的参数。每一原创 2021-08-11 18:38:09 · 334 阅读 · 0 评论 -
设计模式之责任链模式,以tomcat中的过滤器为例
概述由一组处理器依次处理某个数据,在处理过程中可能对数据进行修改。详细因为大家相对的对Filter最熟悉,这里类图以filter为例了。实际Spring下的Filter会比这个复杂的多,中间隔了很多GenericFilterBean、OncePerRequestFilter等类,这里是简化图图中包含三类角色:被处理的对象:request和response,被处理的对象可以是一个可以是多个,Filter中是这一对过滤器链:负责如下事情存储所有需要执行的过滤器过滤器链的开始过滤通过遍历判断原创 2021-05-16 22:42:57 · 358 阅读 · 0 评论 -
设计模式之工厂模式,以通知为例
概述工厂模式解耦了调用方与被调用方。最大的例子就是Spring。我们以信息推送为例子,因为一般service都只有一个实现类,很难体会区别。而信息推送有的系统用手机,有的用app,有的用多端集成,所以是可能有多种实现的,包括spring的cache实现类,session存储类等等,这类非service类型一般都有多套实现类。信息推送类结构图如下:在有Spring之前,我们一个信息推送类的引入方式是,在所有需要推送信息的类里加一个如下代码:private MsgSender msgSender原创 2021-05-16 18:26:14 · 225 阅读 · 0 评论 -
委派模式的应用
delegate模式委派模式,一种动态选择执行类的模式。类图以spring的应用监听器为例// 接口public interface ApplicationListener<E extends ApplicationEvent> extends EventListener { /** * Handle an application event. * @param event the event to respond to */ void onApplicationEve原创 2021-05-12 21:09:02 · 150 阅读 · 0 评论