某些具有相同属性的事物,根据使用者发出指令到第三方,第三方自动帮你匹配到你需要的事物。
举个例子:
有一个工厂,里面有3条流水线,一条生产 宝马,一条生产 奔驰,一条 法拉利。这三种都属于车,当你需要一辆车时,你跟厂家说:给我
来量车。厂家就会问:你要什么车,你说:给我来辆宝马。厂家:好的,就来。
你不需要自己重新建一条流水线,只需要把具体的指令发给厂家,就能得到你需要的车。


用代码举个例子

首先,这三种都是车,有车的工行,能跑 
 
 public interface Car{ 
 
     public void run(); 
 
 } 
 


 有3条流水线,生产的都是车。
public class BaoMa implements Car{ 
 
     public  void run(){ 
 
         System.out.printl("我是宝马"); 
 
     } 
 
 } 
 


 public class BenChi implements Car{ 
 
     public void run(){ 
 
         System.out.printl("我是奔驰"); 
 
     } 
 
 } 
 


 public class FaLaLi implements Car{ 
 
     public void run(){ 
 
         System.out.printl("我是法拉利"); 
 
     } 
 
 } 
 


 最后,有个工厂,能根据你的需要生产你需要的车 
 
 public class Factory{ 
 
     public Car getCar(String carName){ 
 
             if("法拉利".equals(carName)){ 
 
                 return new FaLaLi(); 
 
             }else if("宝马".equals(carName)){ 
 
                 return new BaoMa(); 
 
             }else if("奔驰".equals(carName)){ 
 
                 return new BenChi(); 
 
             } 
 
     } 
 
 } 
 




 public static void main(String[] args){ 
 
     Factory factory = new Factory(); 
 
     Car car =    factory.getCar("宝马"); 
 
     car.run();//我是宝马 
 
 }





最后说一说简单工厂模式的优劣
优点
工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。
缺点
由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。
当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实例的需求.这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利;
这些缺点在工厂方法模式中得到了一定的克服。
使用场景
工厂类负责创建的对象比较少;
客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;
由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。