Update 02.FactoryMethod.md

master
Qiangguo Feng 2021-09-09 22:29:04 +08:00 committed by GitHub
parent 875e2b2bfc
commit add73de3f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 5 deletions

View File

@ -17,17 +17,18 @@
- **抽象产品AbstractProduct**:所有产品的基类,提供产品类的公共方法
- **具体产品ConcreteProduct**:具体的产品类
工厂方法模式UML类图如下
![avatar](.//1.Picture//工厂方法模式UML图.png)
![avatar](https://github.com/FengJungle/DesignPattern/blob/master/02.FactoryMethod/1.Picture/%E5%B7%A5%E5%8E%82%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8FUML%E5%9B%BE.png)
# 3.工厂方法模式代码实例
考虑这样一个场景,如下图:
![avatar](.//1.Picture//工厂方法模式.png)
![avatar](https://github.com/FengJungle/DesignPattern/blob/master/02.FactoryMethod/1.Picture/%E5%B7%A5%E5%8E%82%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8F.png)
```
Jungle想要进行户外运动它可以选择打篮球、踢足球或者玩排球。和上一次的体育保管室不同这次分别由篮球保管室、足球保管室和排球保管室Jungle只需直接去相应的保管室就可以拿到对应的球然后Jungle就可以愉快地玩耍了。
Jungle想要进行户外运动它可以选择打篮球、踢足球或者玩排球。和上一次的体育保管室不同这次分别由篮球保管室、足球保管室和排球保管室.
Jungle只需直接去相应的保管室就可以拿到对应的球然后Jungle就可以愉快地玩耍了。
```
对应的UML实例图如下图
![avatar](.//1.Picture//工厂方法模式UML实例图.png)
![avatar](https://github.com/FengJungle/DesignPattern/blob/master/02.FactoryMethod/1.Picture/%E5%B7%A5%E5%8E%82%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8FUML%E5%AE%9E%E4%BE%8B%E5%9B%BE.png)
## 3.1.定义抽象产品类AbstractSportProduct方法不提供实现
@ -223,4 +224,4 @@ Jungle play Volleyball
## 适用环境:
- 客户端不需要知道它所需要创建的对象的类;
- 抽象工厂类通过其子类来指定创建哪个对象(运用多态性设计和里氏代换原则)
- 抽象工厂类通过其子类来指定创建哪个对象(运用多态性设计和里氏代换原则)