3.Abstract Factory(创建型模式)

来源:互联网 发布:光棍节 知乎 编辑:程序博客网 时间:2024/05/16 16:16

【起源】

         client 在创建对象时 依赖于 class, class 的变化会对 client 造成影响,因此要封装 创建对象的过程;

         通常使用的方式:新建工厂类,用静态方法封装 对象的创建过程;

 

【动机】

         提供一个接口,用来创建 一系列相互依赖的对象(存在多个系列的对象,在不同系列中切换);

         封装 系列(纵向) 这个变化,抽象类(横向)的变化 在后面的模式中解决;

                 抽象类A       抽象类B        ...     抽象工厂    (在创建对象时,client 只关注这一行)

    系列1    具体类A1     具体类B1      ...       工厂1

    系列2    具体类A2     具体类B2      ...       工厂2

 

【核心】

         灵活利用了 抽象类,抽象类和具体类的关系就像 【变量,值】;

         “抽象类”从纵向关注具体类,“工厂类”从横向关注具体类,构成一个二维坐标系;

 

【代码实例】

【模型图】