1,单例模式——举例:数据库连接池

  •    类的构造器声明为私有的(private),同时构造一个静态的公共方法用于获取单实例类的对象——需对该方法是用synchronized加锁,以防止出现多个实例对象
  •   适用于管理类如 数据库连接池等

2,枚举模式

  • 用于表示一个具有固定状态,且状态都是最简单的数据字段,的对象
  • 构建类的静态状态参数,且构造器声明为私有,在实例化对象时设定状态
  • new 出类的各个状态的实例
  • 为了使得状态之间的比较更简单,可以override Object类的 equal()方法

3,工厂模式

  • 例子:设计可以在不同数据库之间方便移植的类,通过实现特定的工厂接口,生产出具有不同底层驱动的数据库连接类。

4,观察者模式——Swing 包的“事件——监听器”就是观察者模式的实现

  • push模型:所有状态改变信息都在事件发生时一并发送给观察者——qq聊天器便是典型的push模型:当服务器接收到新信息(数据更新事件)后,同过网络连接push到客户端,由客户端显示给用户(观察者被动的接受信息)
  • pull模型:在事件发生的时候,只通知观察者有数据更新发生,由观察者决定是否查看数据更新情况——新浪微博便是pull模型的应用:当有新微博时,服务器通知观察者(客户端)有数据更新事件发生,再由用户进行选择操作

5,代理模式——使得实际对象对于用户处于透明状态

  • 实现与实际对象相同的接口,并封装跟实际对象的交互
  • 可以实现延时加载实际对象的功能
6,外观模式——