这样在使用时,我们只要知道它的工厂方法就可以直接产生一个产品对象,无需关心它的实现类
抽象工厂模式的优缺点
优点如下;
封装性,每个产品的实现类不是高层模块要关心的,他只要关心接口、抽象,不关心对象是如何创建的...如何创建由工厂负责.
产品族内的约束为非公开状态.....例如,要增加一个产品, 抽象工厂类要增加一个方法, 其所有实现类都要增加方法, 这严重违反了开闭原则....抽象工厂模式的使用场景
一个对象族(或是一组没有任何关系的对象)都有相同的约束,则可以使用抽象工厂模式....三个不同操作系统上的软件功能、应用逻辑、UI都应该是非常类似的, 唯一不同的是调用不同的工厂方法,由不同的产品类去处理与操作系统交互的信息