工厂方法模式在于需要根据条件来控制对哪个类进行实例化,而抽象工厂模式确定实例化的往往设计到多个类,目的是创建一组相关或者相互依赖的对象提供支持!重点就是在于处理一组相关或者相互依赖类!
举一个的经典实例,就是GUI工具箱。一个GUI工具箱就是一个对象,也是一个抽象工厂。GUI工具箱提供了各种GUI控件,并为它们提供了一个基本的东西,比如外观、颜色等。这样,当GUI控件有新版本了,可以再声明一个新的抽象工厂。那么软件就可以根据需要来使用那个一个抽象工厂类了。我们注意到各种GUI控件便是一组相关或者相互依赖类!
它与工厂方法模式类似,不需要知道该对哪个类进行实例化。抽象工厂为用户提供了一个工厂,这个工厂便可以创建一系列的对象,而这些对象是相关的或是相互依赖的!
再看一个代码实例:






































































































































































