struts2的设计模式

传统的基于servlet的开发模式。servlet对象是否线程安全?
web容器默认采用单servlet实例多线程的方式处理http请求。所有servlet不是线程安全的。
1、ThreadLocal模式
 原理:多个线程访问同一共享变量时,ThreadLocal类为每个线程提供一份该变量的副本,各个线程拥有一份属于自己的变量副本,操作修改的是各自的变量副本,而不会相互影响。
在两个方向完成数据隔离:
纵向:线程与线程之间的数据访问隔离。
横向:同一个线程中,不同的ThreadLocal实例操作的对象之间相互隔离
ThreadLocal模式最适合的场景?
在不同开发层次中共享数据
ThreadLocal模式的两个主要步骤
1、建立一个类,并在其中封转一个静态的ThreadLocal变量,使其成为共享数据环境。
2、在类中实现访问静态ThreaLocal变量的静态方法。
2、装饰模式
在这里插入图片描述
1、默认目标实现(TargetComponent)类封装于具体实现类(ComponentDecorator)或者其子类内部,从而形成对对象之间的引用关系。
2、具体装饰类(ComponentDecorator)同样实现了原始接口。

3、策略模式
策略模式的目的在于把算法实现与算法使用环境解耦。添加新算法不影响原来对的环境继续使用其代码
在这里插入图片描述
策略模式涉及的主要角色:
环境角色:持有一个策略类的引用,决定具体调用那种策略。
抽象策略角色:这是一个抽象类或接口,是所有策略算法的核心归纳。
具体策略角色:封装具体的策略算法或行为。
4、建造者模式
在这里插入图片描述
建造者模式涉及4个角色:
客户端:调用具体的构造器完成对象创建
抽象构造器角色:包含一组接口方法(有一个builder方法,和若干辅助方法)
具体构造器角色:具体构造器实现
产品角色:整个构造模式的产物。
责任链模式
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值