1700485470
1700485471
public class ViewPathVisitor extends VisitorSupport{
1700485472
1700485473
//获得指定的路径
1700485474
1700485475
private String viewPath;
1700485476
1700485477
private String result;
1700485478
1700485479
//传递模型结果
1700485480
1700485481
public ViewPathVisitor(String_result){
1700485482
1700485483
result=_result;
1700485484
1700485485
}
1700485486
1700485487
@Override
1700485488
1700485489
public void visit(Element el){
1700485490
1700485491
Attribute att=el.attribute(“name”);
1700485492
1700485493
if(att!=null){
1700485494
1700485495
if(att.getName().equals(“name”)&& att.getText().equals(result)){
1700485496
1700485497
viewPath=el.getText();
1700485498
1700485499
}
1700485500
1700485501
}
1700485502
1700485503
}
1700485504
1700485505
public String getViewPath(){
1700485506
1700485507
return viewPath;
1700485508
1700485509
}
1700485510
1700485511
}
1700485512
1700485513
DOM4J提供了VisitorSupport抽象接口,可以接受元素、节点、属性等访问者。我们这里接受了一个元素访问者,对所有的元素过滤一遍,然后找到自己需要的元素,非常强大!
1700485514
1700485515
我们继续分析,在IoC容器中都会区分对象是单例模式还是多例模式。想想我们的框架,每个HTTP请求都会产生一个线程,如果我们的Action初始化的时候是单例模式会出现什么情况?当并发足够多的时候就会产生阻塞,性能会严重下降,在特殊情况下还会产生线程不安全,这时就需要考虑多例情况。那多例是如何处理呢?使用Clone技术,首先在系统启动时初始化所有的Action,然后每过来一个请求就拷贝一个Action,减少了初始化对象的性能消耗。典型的原型模式,但问题也同时产生了,并发较多时,就可能会产生内存溢出的情况,内存不够用了!于是享元模式就可以上场了,建立一个对象池以容纳足够多的对象。
1700485516
1700485517
1700485518
1700485519
[
上一页 ]
[ :1.70048547e+09 ]
[
下一页 ]