1、单例模式
应该说,单例模式在Java中随处可见,例如Log4j中的Logger类。
2、原型模式
该模式在Java中的应用就是Object的clone方法了,表示复制一个对象,新对象和原来的对象的完全相同,当然这得分深复制和浅复制了。
3、享元模式
该模式最典型的就是Integer等的包装类了。比如你打算这样写一段代码
Integer i1 = 127;
Integer i2 = 127;
Systen.out.println(i1==i2);
那么您肯定会发现,如果打印i1==i2的结果将是什么呢?,不错将是true,包括从-128到127,类似这样得到的对象总是同一对象,这里就用到了享元模式。
4、代理模式
这就更不用说了,Java中的代理,Hibernate中的延迟加载等,Spring的AOP代理。
5、观察者模式
这个应该说在GUI开发中,事件监听器都属于观察者吧,还有在Junit中也有用到,TestListener和ResultPrinter。
6、装饰器模式
这个在Java中主要在IO包中比较多,比方说 BufferedReader,DataOutputStream等等。
7、模板方法模式
这个主要在Spring的JdbcTemlate和HibernateTemplate用到了
8、桥模式
JDBC中实现了桥模式,就是那个Driver(具体)和DriverManger(抽象)
9、适配器模式
该模式在IO中有两个类InputStreamReader和OutputStreamWriter类,显然就是把字节流适配字符流嘛。
10、迭代器模式
这个更不用说了,集合框架中的List、Set、Map基本上都实现了Iterator