目的:把创建实例的责任和使用实例的责任分开
描述:有个类的一个方法methodA()专门负责生成对象的实例,其他类调用此方法生成一个类的实例
例子
/***********************创建工厂************************/
 package factory;
 
 public class Factory { 
     public static Shape getInstance(String className) {
         if (className.trim().equalsIgnoreCase("square")) {
             return new Square();
         }
         else if (className.trim().equalsIgnoreCase("circle")) {
             return new Circle();
         }
         return null;
     }
 }
 
/*********************要创建的实例**********************/ 
 public interface Shape{
  public String toString();
  public void draw();
 }
 
 public class Square implements Shape{
  public String toString(){
   return "I am a Shape Of Square!";
  }
  public void draw(){
  }
 }
 
 public class Circle implements Shape{
  public String toString(){
   return "I am a Shape Of Circle!";
  }
  public void draw(){
  }
 }
/********************调用****************************/
public class Test {
 public static void main(String args[]){
  Shape sha = Factory.getInstance("circle");
  System.out.println(sha.toStrng());
 }
}