Java中如何实现工厂方法模式?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2090个文字,预计阅读时间需要9分钟。
定义+工厂方法模式定义了一个创建对象的接口,但由子类决定实例化哪一个类。工厂方法让类把实例化推迟到子类。
UML类图+说明+Product:所有产品都必须实现这个共同的接口。
定义
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例推迟到子类。
UML类图
说明
Prouduct:所有的产品都必须实现这个共同的接口,并实现多态
Creator:它是一个类,实现了所有操纵产品的方法,但不实现工厂方法,并且所有的它的子类都必须实现这个抽象的factoryMethod()方法。
ConcreteCreator:它必须实现factoryMethod(),以实际制造出产品,并且它负责创建一个或多个具体产品,只有ConcreteCreator类知道如何创建这些产品。
事例
上一次的简单工厂,以一个披萨店为例;这里同样如此,说明它如何从一个简单工厂扩展为工厂方法模式;
这里,披萨店要开分店
纽约披萨店:奶酪、蛤蜊、意式辣肠、蔬菜等类型的披萨
芝加哥披萨店:奶酪、蛤蜊、意式辣肠、蔬菜等类型的披萨
两种店都供应这些披萨,但同种名称的披萨的细节却不同,每家店都供应其独特的披萨。
本文共计2090个文字,预计阅读时间需要9分钟。
定义+工厂方法模式定义了一个创建对象的接口,但由子类决定实例化哪一个类。工厂方法让类把实例化推迟到子类。
UML类图+说明+Product:所有产品都必须实现这个共同的接口。
定义
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例推迟到子类。
UML类图
说明
Prouduct:所有的产品都必须实现这个共同的接口,并实现多态
Creator:它是一个类,实现了所有操纵产品的方法,但不实现工厂方法,并且所有的它的子类都必须实现这个抽象的factoryMethod()方法。
ConcreteCreator:它必须实现factoryMethod(),以实际制造出产品,并且它负责创建一个或多个具体产品,只有ConcreteCreator类知道如何创建这些产品。
事例
上一次的简单工厂,以一个披萨店为例;这里同样如此,说明它如何从一个简单工厂扩展为工厂方法模式;
这里,披萨店要开分店
纽约披萨店:奶酪、蛤蜊、意式辣肠、蔬菜等类型的披萨
芝加哥披萨店:奶酪、蛤蜊、意式辣肠、蔬菜等类型的披萨
两种店都供应这些披萨,但同种名称的披萨的细节却不同,每家店都供应其独特的披萨。

