按照分层开发的观点,可以将应用划分为:表示层、业务逻辑层和持久层,每一层都有属于自己类别的设计模式。
表示层设计模式:
1)Interceptor Filter:拦截过滤器,提供请求预处理和后处理的方案,可以对请求和响应进行过滤。
2)Front Controller:通过中央控制器提供请求管理和处理,管理内容读取、安全性、视图管理和导航等功能。Struts 2中的StrutsPrepareAndExecuteFilter、Spring MVC中的DispatcherServlet都是前端控制器,后者如下图所示:
3)View Helper:视图帮助器,负责将显示逻辑和业务逻辑分开。显示的部分放在视图组件中,业务逻辑代码放在帮助器中,典型的功能是内容读取、验证与适配。
4)Composite View:复合视图。
业务逻辑层设计模式:
1)Business Delegate:业务委托,减少表示层和业务逻辑层之间的耦合。
2)Value Object:值对象,解决层之间交换数据的开销问题。
3)Session Façade:会话门面,隐藏业务逻辑组件的细节,集中工作流程。
4)Value Object Assembler:灵活的组装不同的值对象
5)Value List Handler:提供执行查询和处理结果的解决方案,还可以缓存查询结果,从而达到提升性能的目的。
6)Service Locator:服务定位器,可以查找、创建和定位服务工厂,封装其实现细节,减少复杂性,提供单个控制点,通过缓存提高性能。
持久层设计模式:
1)Data Access Object:数据访问对象,以面向对象的方式完成对数据的增删改查。