1.单例模式 就是一个类只产生一个对象 对应数据库链接 定时执行者服务(ScheduledExecutorService) 在整个项目中应该只有一个对象
2.工厂模式 定义一个用于建立对象的接口 让子类决定具体的实现 好比飞机大战建立不一样的飞机 不一样
的英雄
3.外观模式 定义子系统的接口组合 实现统一的界面 好比(Statement和PerpareStatement数据
库链接操做的封装类)
4.装饰者模式 动态的给对象添加额外的职能 做为人在不一样的场景扮演不一样的角色 典型的是io流
5.组合模式 给对象构造树状结构 以表示部分和总体的层次结构 比较常见的有 文件目录 多级菜单
6.模板模式 就是给一个操做添加算法框架 一些操做延迟到子类实现 比较常见的是读取配置文件
7.原型模式 就是在原型对象建立新的对象 浅克隆会拷贝基本数据类型和String类型 其余引用类型不会
拷贝(通常)
8.建造者模式 就是给一个复杂对象的构建和表示分离 使的一样的构建方式能够有不一样的表示方式
protobuf的类的构建
9.策略模式 就是定义一系列的算法 封装起来 让他们能够相互替换 使的能够根据需求而变化、
10.适配器模式 就是将一个接口转换成客户端须要的接口 使的本来接口不兼容不能一块儿工做的能够一
起工做 100V的电压转为36V
11.桥接模式 就是将抽象部分和实现部分分离使的能够 抽象和实现独立的变化 不一样的飞机发射不一样的
子弹 不一样的英雄释放不一样的技能
12.享元模式 就是运用共享技术管理对象 比较常见的有缓存和数据库链接 这些不常常变化的数据可
以存入缓存中 提升查询速度
13.责任链模式 就是将多个对象处理请求 将它们连成一条链 每一个对象都沿着这条链处理请求 web 的
过滤器就是这个原理 代码实现就是对象实现统一的接口 用集合存储对象 遍历调用接口方法
14.命令模式 就是将一个请求封装成一个对象 使的能够实现不一样的请求对客户进行参数化
好比鼠标点击监听器 代码实现 暴露一个接口成员变量
15.访问一个聚合对象的内容而无需暴露它的内部表示 支持对聚合对象的遍历
好比集合的遍历 代码实现 在一个类中定义集合聚合对象成员变量 在这个类中处理聚合对象内容提
供方法给外部
16.中介者模式 用一个中介对象封装多个对象的交互 使的对象之间不用显示的引用 耦合松散 独立的
改变对象之间的交互 代码实现 就是定义一个中介类 定义多个对象的成员变量 中介类重写接口方
法 实现不一样的交互
17.备忘录模式 在不破坏封装性的前提下 访问一个对象的内部状态 并在对象以外保存这个内部对象
使的对象能够恢复到保存的状态 记事本 undo redo 历史记录恢复 代码实现 用一个类 定义一个集
合成员变量 和索引 根据索引获取指定时间的备份
18.观察者模式 定义多个对象之间的一对多的依赖关系 当一个对象发生改变 依赖于他的对象获得通知
并发生改变 好比给日志打印 spirng的事件监听 代码实现 就是让用个集合存储监听接口
19.代理模式 为其余对象提供代理 以控制这对象的访问 好比dao层数据库访问层 数据源类型用模板模
式实现 代码实现 代理类实现被代理方法 而且定义被代理类的成员变量