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);
}
}