Abstract Factory 抽像工厂

模式定义

    Abstract Factory模式定义了如何实例化一组对象系列,这些对象可能相关可能互为利用。客户在创建的时候无须指定这些对象属于什么类型,它只需关注是谁生产的。具体生产出来的一系列对象的细节和类别则由某个工厂负责。

    使用范围

    系统需要独立于组成它的对象系列的创建、组织和表现的时候    需要组合一系列的对象,这些对象作为整体作用于一个系统的时候    使用方法

    考察抽象工厂的类图

    AbstractFactory类是一个系统的抽象,称之为工厂,该工厂可能多个包含细节的子类。每个工厂都必须生产同一个系列的产品组,这里为AbstractProductA和AbstractProductB。然而,每一个工厂的系列产品又有不同的实现方法或表现方法。因此ConcreteFactory1生产ProductA1和ProductA1,ConcreteFactory2生产ProductA2和ProductB2。

    举例说明

    假设我们要在一个应用程序中创建一个Button和一个Textbox。对于不同的系统可能创建不一样的这两个对象,Linux下的和Windows环境下的。

    public abstract class Button {        protected abstract void createShape();    }

    public abstract class Textbox {        protected abstract void createText();    }    在Linux环境下创建Button和Textbox的实现细节

    public class LinuxButton extends Button{        protected void createShape() {            System.out.println("create Linux Button");        }    }    public class LinuxTextbox extends Textbox{        protected void createText() {            System.out.println("create linux textbox");        }    }    在Windows环境下创建Button和Textbox的实现细节

    public class WindowsButton extends Button{        protected void createShape() {            System.out.println("create windows button");        }    } 

以上是 Abstract Factory 抽像工厂 的全部内容, 来源链接: utcz.com/p/205392.html

回到顶部