工厂实现了解耦。
简单工厂把全部的事情在一个地方都处理完了,然而工厂方法却是创建一个框架。让子类决定要如何实现。简单工厂不具备工厂方法的弹性,因为简单工厂不能变更正在创建的产品。
工厂的好处
将穿件对象的方法集中在一个对象或方法中,可以避免代码中的重复,并且更方便以后的维护。这也意味着客户在实例化对象时,只会依赖于接口,而不是具体类。
工厂的实现也创建了具体的对象。如果不创建任何对象,就无法创建任何Java程序。工厂只是将这些创建的代码集中在一起,这样有利于维护。
简单工厂
将创建对象的代码封装到一个类里。
工厂方法模式
定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
静态工厂
利用静态方法创建一个简单的工厂,不需要使用创建对象的方法来实例化对象,但不能通过继承来改变创建方法的行为。
抽象工厂模式
提供一个接口,用于创建相关或依赖的对象的家族,而不需要指明具体类。
原文:http://www.cnblogs.com/loststart/p/5182936.html