单例模式:
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{
@Override
public void draw(){
System.out.println("Inside Rectangle::draw() method.");
}
}
class Circleimplements Shape{
@Override
public 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