package com.cheng.zenofdesignpatterns.extension.mvcframework; import com.cheng.zenofdesignpatterns.ZoDPChapterBaseActivity; public class UiZoDPMVCFramework extends ZoDPChapterBaseActivity { @Override protected void initData() { mTitleTV.setText("MVC框架"); String content = "MVC框架的优点:\n" + "- 高重用性\n" + "- 低耦合\n" + "- 快速开发和便捷部署\n\n" + "MVC的系统架构\n" + "这里设计的MVC框架包含一下模块:\n" + "核心控制器(FilterDispatcher)、拦截器(Interceptor)、过滤器(Filter)、" + "模型管理器(Model Action)、视图管理器(View Provider)。\n" + "各个模块的职责如下:\n" + "- 核心控制器\n" + "MVC框架的入口,负责接收和反馈HTTP请求。\n" + "- 过滤器\n" + "Servlet容器内的过滤器,实现对数据的过滤处理。\n" + "- 拦截器\n" + "对进出模型的数据进行过滤,它不依赖系统容器,只过滤MVC框架内的业务数据。\n" + "- 模型管理器\n" + "提供一个模型框架,该框架内的所有业务操作都应该是无状态的,不关心容器对象,例如" + "Session、线程池等。\n" + "- 视图管理器\n" + "管理所有的视图,例如提供多语言的视图等。\n" + "- 辅助工具\n" + "其实就是一大堆的辅助管理工具,比如文件管理、对象管理等。\n\n" + "最佳实践\n" + "来看看用到了哪些模式:\n" + "- 工厂方法模式:通过工厂方法模式把所有的拦截器链实现出来,方便在系统初始化时直接" + "处理。\n" + "- 单例模式:Action的默认配置都是单例模式,在一般的应用中单例已经足够了,在复杂情" + "况下可以使用享元模式提供应用性能,减少单例模式的性能隐患。\n" + "- 责任链模式:建立拦截器链以及过滤器,实现任务的链条化处理。\n" + "- 迭代器模式:非常方便地遍历拦截器链内的拦截器,而不用再自己写遍历拦截器链的方法。\n" + "- 中介者模式:以核心控制器为核心,其他同事类都负责为核心控制器“打工”,保证核心控" + "制器瘦小、稳定。\n" + "- 观察者模式:配置文件修改时,不用重启应用可以即刻生效,提高使用者的体验。\n" + "- 桥梁模式:使不同的视图配合不同的语言文件,为终端用户展示不同的界面。\n" + "- 策略模式:对XML文件的检查可以使用两种不同的策略,而且可以在测试机和开发机中使" + "用不同的检查策略,方便系统的自由切换。\n" + "- 访问者模式:在解析XML文件时,使用访问者非常方便地访问到需要的对象。\n" + "- 适配器模式:把一个开发者不熟悉的对象转换为熟悉的对象,避免工具或框架对开发者的" + "影响。\n" + "- 门面模式:Action分发器负责所有的Action的分发工作,它提供了一个调用Action的唯" + "一入口,避免外部模块深入到模型模块内部。\n" + "- 代理模式:大量使用动态代理,确保了框架的智能化。"; mContentTV.setText(content); } }