提供一系列相关互相依赖对象的接口,而无需指定他们的具体类
    应用场景 程序需要处理不同系列的相关产品,但是您不希望它依赖于具体类时候
    优点:1.确认你从抽象工厂得到的产品是彼此兼容的
    2.可以避免具体产品和客户端代码之间的紧密耦合
    3.符合单一职责原则
    4.符合开闭原则