02、抽象工厂模式
来源:互联网 发布:php小型博客开源框架 编辑:程序博客网 时间:2024/06/04 18:44
抽象工厂模式
细节就不说了,简单的通过模拟场景来挖掘其优点。
产品类
IRequest 接口,包含网络请求相关的方法,比如 addHeader(),toUrl()等方法。
工厂类
IRequestFactory接口,包含创建IRequest 的方法,createRequest();
模拟两种框架(OkHttp 和 XUtil)
包含以下实现类
OkRequestFactory(工厂)
OkRequest(产品)
XUtilRequestFactory(工厂)
XUtilRequest(产品)
类图如下:
再看看调用
IRequestFactory manager; //根据类型自动选择框架 switch (httpType) { case 1: manager = new OkRequestFactory(); break; default: manager = new XUtilRequestFactory(); break; } IRequest request = manager.createRequest(); request.toUrl();
- 总结(仔细观察代码):
- 首先 工厂跟产品是一对多的关系;
- 其次 调用过程无需关注产品具体类,逻辑分装在工厂类中;
- 再次 可以进行比较好的业务切换(工厂选择的切换)
- 最后 是缺点,每增加一种类别的产品,意味着需要增加一种对应的工厂;
1 0
- 02、抽象工厂模式
- 工厂模式 -- 抽象工厂
- 工厂模式-抽象工厂
- 工厂模式-抽象工厂
- 工厂模式/抽象工厂模式
- 工厂模式&&抽象工厂模式
- 工厂模式---抽象工厂模式
- 工厂模式&抽象工厂模式
- 工厂模式,抽象工厂模式
- 设计模式02-抽象工厂模式
- 【模式】抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 工厂方法,抽象工厂模式
- 2,工厂模式--抽象工厂
- C#工厂模式-抽象工厂
- 工厂模式与抽象工厂
- 第九次ccf-工资计算
- Nginx初识
- PHP简单实用的数据分页显示代码
- 我的第一篇博客
- 青蛙过河
- 02、抽象工厂模式
- 浮点型的读取方式
- 1619-7 张良 十二月二十、二十一、二十二号总结 [连续第八十一、八十二、八十三天]
- web随性笔记01
- CentOs7 mysql更改密码
- web随性笔记02
- 系统调用与库函数的区别?
- linux套接字
- spring aop 配置文件参数介绍