1. 单例模式[创建型]
- 应用场景1:在构造函数中解析配置文件保证只解析一次
- 应用场景2:做缓存,因为单例对象不会被垃圾回收器回收
单例分类:
- 真单例
* 饿汉
* 懒汉
- 伪单例
* Servlet是一个伪单例,不符合单例模式的规则,但是该对象是单例的.
Servlet对象的生命周期,程序员无权干涉.只能交给WEB容器管理.
Servlet是单例,那么Servlet对象上的实例变量一定会有线程安全问题.
所以建议不要在Servlet类上定义实例变量.除非保证该实例变量不被修改.
2. 策略模式[行为型]
- 集合是策略模式的代表
- 比较器也是策略模式的代表
3. 迭代器模式[行为型]
- 集合的遍历是迭代器的代表
4. 缺省适配器[结构型]
- GenericServlet
- 自己编写的过滤器Filter适配器
- 自己编写的拦截器Interceptor适配器
5. 装饰器模式[结构型]
- IO流是装饰器模式的代表
6. 代理模式[结构型]
- 静态代理
- 动态代理
7. 模板方法模式[行为型]
- HttpServlet是模板方法设计模式的代表
模板方法设计模式的核心:
在模板类的模板方法中定义核心算法骨架,具体的实现延迟到
子类中完成,可以达到在不修改核心算法的前提之下,可以重新
定义算法的具体实现.
模板方法设计模式是最简单的设计模式,因为它只采用了java中的继承机制.
8. 简单工厂[创建型]
* 设计模式一般说的都是Gof95,其实除了Gof95之外还有JavaEE的设计模式,以上除简单工厂之外都是Gof设计模式.
* 设计模式的分类:
- 创建型
- 结构型
- 行为型
* Gof95共23种设计模式
---------------------------------------------开发原则---------------------------------------------------------
1.OCP 基本的开发原则,开闭原则
2.迪米特法则:高内聚,低耦合
3.依赖倒转原则:面向接口编程,面向抽象编程
4.合成聚合复用原则:尽量使用A has a B,减少使用A is a B