一单例模式
特点:私有的静态属性;私有的构造子;公有的自身类型静态方法中,如果对象为空则new,不为空直接返回对象;
代码实现:
public class Singleton
{
private static Singlrton singleton;
private Singleton()
{
}
public static Singleton getInstance()
{
if(null == singleton)
{
singleton = new Singleton();
}
return singleton;
}
二 代理模式
特点:代理与真实对象实现的是同一接口;将真实对象作为代理的属性;
向客户端公开的是代理,当客户调用代理的方法时,代理找到真实对象调用真实对象的方法,在调用之前和之后提供事务,日志,安全等服务;
代码实现:
/*
*客户端
*/
public class Client()
{
Proxy p = new Proxy();
p.fun();
}
/*
*公用接口
*/
public Interface AbstractObjec
{
public void fun();
}
/*
*真实对象
*/
public class RealObject()
{
public void fun ()
{
system.out.println("业务处理");
}
}
/*
*代理*/
public class Proxy()
{
private RealObject realObj = new RealObject();
public void fun ()
{
prehandle();
realObj.out.fun();
afterhandle()
}
public void prehandle()
{
system.out.println("处理之前");
}
public void afterhandle()
{
system.out.println("处理之后
}
}