单例模式:
public class Singleton {public static Singleton instance;private Singleton(){}public static Singleton getInstance() {if(instance==null){synchronized (Singleton.class){if(instance==null){try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}instance=new Singleton();}}}return instance;}
}
工厂模式:
interface Shape{void draw();
}
class Rectangle implements Shape{@Overridepublic void draw(){System.out.println("Inside Rectangle::draw() method.");}
}
class Circleimplements Shape{@Overridepublic void draw(){System.out.println("Inside Rectangle::draw() method.");}
}
class ShapeFactory(){Public Shape getShape(String shapeType){if(shapeType==null){return null;}if(shapeType.equals(“circle”)){return new Circle();}else if(shapeType.equals(“rectangle”)){return new Rectangle();}return null;}
}
代理模式
jdk动态代理,实现接口的类
cglib动态代理
策略模式
ability