一、单例设计模式
1、饿汉式
代码实例:
<span style="white-space:pre"> </span>class Single
<span style="white-space:pre"> </span>{<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span><span style="white-space:pre"> </span>private static final Single s = new Single();
<span style="white-space:pre"> </span><span style="white-space:pre"> </span>private Single(){}
<span style="white-space:pre"> </span>public static Single getInstance()
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span> return s;
<span style="white-space:pre"> </span>}
2、懒汉式(重点)
【1】传统实现:
class Single1
{
private static Single1 s = null;
private Single1(){}
public static Single1 getInstance()
{
if (s==null)
{
synchronized (Single1.class)
{
if (s==null)
{
s = new Single1();
}
}
}
return s;
}
}
【2】枚举实现:
class Demo
{
public enum Single
{
single
{
@Override
public Single getInstance()
{
// TODO Auto-generated method stub
return single;
}
};
public abstract Single getInstance();
}
}
【3】暴力反射(待完善....):
二、装饰设计模式
例如:BufferedReader和BufferedWriter
三、享元设计模式
概念:就是有很多个小的对象,他们有很多属性相同,把他们封装成一个对 象,那些不同的属性,把它们变为方法的参数,称之为外部状态,那 些相同的属性的称之为这个对象的内部状态。
例如:Integer自动装箱时,将-128~127放入共享区域
四、适配器设计模式
五、代理设计模式
六、工厂设计模式
七、模板方法设计模式