Update 03.AbstractFactory.md

master
Qiangguo Feng 2021-09-15 21:47:18 +08:00 committed by GitHub
parent 3e8904b9eb
commit 88241f7a07
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 8 deletions

View File

@ -19,11 +19,13 @@
- **抽象产品AbstractProduct**:所有产品的基类,提供产品类的公共方法
- **具体产品ConcreteProduct**:具体的产品类
抽象工厂模式UML类图如下
![avatar](https://github.com/FengJungle/DesignPattern/blob/master/03.AbstractFactory/1.Picture/%E6%8A%BD%E8%B1%A1%E5%B7%A5%E5%8E%82%E6%A8%A1%E5%BC%8FUML%E5%9B%BE.png)
结合抽象工厂模式定义和UML可以看到具体工厂ConcreteFactory_A可以生产两种产品分别是ConcreteProduct_A_1和ConcreteProduct_A_2另一个具体工厂ConcreteFactory_B同理。客户端使用时需要声明一个抽象工厂*AbstractFactory*和两个抽象产品*AbstractProduct*。
# 3.抽象工厂模式代码实例
考虑这样一个场景,如下图:
![avatar](https://github.com/FengJungle/DesignPattern/blob/master/03.AbstractFactory/1.Picture/%E6%8A%BD%E8%B1%A1%E5%B7%A5%E5%8E%82%E6%A8%A1%E5%BC%8F%E5%AE%9E%E4%BE%8B%E5%9B%BE.png)
```
Jungle想要进行户外运动它可以选择打篮球和踢足球。
@ -32,7 +34,7 @@ Jungle想要进行户外运动它可以选择打篮球和踢足球。
Jungle只要根据心情去某个保管室就可以换上球衣、拿上球然后就可以愉快地玩耍了。
```
对应的UML实例图如下图
![avatar](https://github.com/FengJungle/DesignPattern/blob/master/03.AbstractFactory/1.Picture/%E6%8A%BD%E8%B1%A1%E5%B7%A5%E5%8E%82%E6%A8%A1%E5%BC%8FUML%E5%AE%9E%E4%BE%8B%E5%9B%BE.png)