打字猴:1.700485505e+09
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
1700485520 设计模式之禅 [:1700454093]
1700485521 设计模式之禅 38.2 最佳实践
1700485522
1700485523 本章我们粗略地讲解了一个MVC框架。一个MVC框架要考虑的外界环境因素太多了,而且本身MVC框架也是一个轻量型的,就是希望我们编写的程序在没有Struts、Spring MVC等框架的环境中不需要大规模的修改照样能够运行,所以编写一个框架不是一件容易的事情。幸运的是我们以学习模式为主,通过设计MVC框架来了解设计模式。我们来看看本章用到了哪些模式:
1700485524
1700485525 ❑工厂方法模式
1700485526
1700485527 通过工厂方法模式把所有的拦截器链实现出来,方便在系统初始化时直接处理。
1700485528
1700485529 ❑单例模式
1700485530
1700485531 Action的默认配置都是单例模式,在一般的应用中单例已经足够了,在复杂情况下可以使用享元模式提供应用性能,减少单例模式的性能隐患。
1700485532
1700485533 ❑责任链模式
1700485534
1700485535 建立拦截器链以及过滤器链,实现任务的链条化处理。
1700485536
1700485537 ❑迭代器模式
1700485538
1700485539 非常方便地遍历拦截器链内的拦截器,而不用再自己写遍历拦截器链的方法。
1700485540
1700485541 ❑中介者模式
1700485542
1700485543 以核心控制器为核心,其他同事类都负责为核心控制器“打工”,保证核心控制器瘦小、稳定。
1700485544
1700485545 ❑观察者模式
1700485546
1700485547 配置文件修改时,不用重启应用可以即刻生效,提供使用者的体验。
1700485548
1700485549 ❑桥梁模式
1700485550
1700485551 使不同的视图配合不同的语言文件,为终端用户展示不同的界面。
1700485552
1700485553 ❑策略模式
1700485554
[ 上一页 ]  [ :1.700485505e+09 ]  [ 下一页 ]