框架中的单态

        用spring的factory.getbean("")方法构造的bean默认是单态的,所以尽量不要在bean中构造实例字段,并在外部对该字段进行修改,在内部对其读取。否则就会出现多错误。推而广之所有单态的类都应该避免使用实例字段。
此外对单态模式来说spring 构造bean用的是单态,struts1中的action 也是单态,servlet也是单态的。从设计模式的角度来讲可以总结出一条规律,一般来说处于控制逻辑的类一般都设计为单态的,而存储数据的类,或称之为状态类都不应设计为单态的(这个很容易想得到)。
        但是到了webwork,以及struts2他们当中的action就不是单例的了,这个又有一点例外。用他们的话就是损失了一点性能,而提高了安全。
        不妨看一看struts1和webwork的源代码,他们的请求都转向一个控制转向的servlet,这个servlet再根据请求的不同交给不同的action处理,所不同的是,struts1中创建了一个map他将创建的各个action实例存入map中(对于每个action只创建了一个实例),当用到某个具体的action 去处理请求时,便从map中取出该action来处理。而webwork对于一个请求如果要用某个action去处理就直接再创建该action的实例。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值