设计模式(对象创建)——工厂方法模式

来源:互联网 发布:java 接口 编辑:程序博客网 时间:2024/05/18 02:24

工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。

场景还原(披萨订购):

Ethan需要从纽约披萨店订购披萨,Joel需要从芝加哥披萨店订购披萨。

1)首先,Joel和Ethan需要取得比萨店的实例,Joel需要实例化一个ChicagoPizzaStore,而Ethan需要实例化一个NYPizzaStore.

2)有了各自的PizzaStore, Joel和Ethan分别调用orderPizza()方法,并传入他们喜欢的比萨类型(芝士、素食……)。

3)orderPizza()调用createPizza()创建比萨。


这里写图片描述

UML类图阐述:

工厂方法模式是在简单工厂模式的基础上,对“工厂”添加了一个抽象层。将工厂共同的动作抽象出来,作为抽象类,而具体的行为由子类本身去实现,让子类去决定生产什么样的产品。图片来源


这里写图片描述

模式结构:

  • Product:抽象产品
  • ConcreteProduct:具体产品
  • Factory:抽象工厂
  • ConcreteFactory:具体工厂


这里写图片描述

更多C++示例代码,请移步到本人的github。


设计模式,祝愿你把代码写成艺术。

6/15/2017 1:55:48 PM

阅读全文
0 0
原创粉丝点击