struts2技术内幕读书笔记1--设计模式

来源:互联网 发布:台湾清华大学知乎 编辑:程序博客网 时间:2024/05/17 23:07
threadLocal设计模式:解决servlet对象不是线程安全的的问题
其实可以在thread local存放更丰富的对象比如Map,那么就不用实例化那么thread local了 
protected final static ThreadLocal<Map<String,Object>> threadContext = new MapThreadLocal();


struts2的结构设计确实很时尚~web容器和MVC逻辑分离
自己实现下web容器,然后MVC留给了xwork来做


装饰模式--
如果要对对象行为(除了getter,setter方法以外的对象方法)进行扩展的话,我们首先想到的就是;
现有对象行为的覆盖--通过新增子类override父类的已有方法
添加新的行为职责----在子类中添加新的方法
但是这样的设计就变成在“编译器”就决定行为特性的设计了,而不是“运行期”这种扩展设计模式。关键是,随着子类越来越多,在java里边,只能单根继承,不能进行多重继承,
所以这样的设计缺乏足够的灵活性。


装饰模式就是为了解决“过度依赖使用继承来进行对象的功能扩展”这个问题而设计的。




构造模式--
适用场景
1.适用于构建对象的构造过程十分复杂、构建对象的初始化对于其内部的对象有着强依赖的业务场景
2.适用于构建对象拥有不确定的内部特性,客户端可以根据其自身需要选择对象构建方式和对象内部特性的业务场景
原创粉丝点击