设计模式思想工厂模式
来源:互联网 发布:邮箱绑域名有什么用 编辑:程序博客网 时间:2024/05/29 15:50
工厂模式 分为
简单工厂模式(静态工厂模式)
工厂方法模式
抽象工厂模式
简单工厂模式什么样的呢?
用户A需要A产品,用户B需要B产品,直接找工厂要就行了。当然需要A产品类,B产品类,然后工厂根据用户需要的类型 ,给予构造相应的产品。
那么factory类中 ,就需要包含构建A类的成员函数,构造B类的成员函数。只要根据用户需求类型返回就行了。
但是如果用户C需要C 产品怎么办呢,这是 简单工厂模式 就需要修改工厂类,这就违反了开放封闭原则,开放是继承可以,封闭则是对类修改不行。
怎么办呢?
为了解决这个问题 出现了工厂方法模式。
为了不修改类,显然只有采用继承的方法,我可以有很多类来产生多个对象,但不能通过对一个类的修改来产生多个对象
因此可以定义一个工厂的抽象类。针对不同的产品定义一个对应产品的工厂。
这样 就把判断定义A产品还是B产品的任务 ,有工厂类,转移到了用户那里。
但是如果我此时需要的是 A和B产品呢?
那么就需要抽象工厂模式
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口, 而无需指定它们具体的类.
阅读全文
0 0
- 设计模式思想工厂模式
- 设计模式思想工厂模式
- SPRING设计思想之工厂模式
- 设计思想学习—工厂方法模式
- 设计思想学习—抽象工厂模式
- 设计模式------工厂模式
- 设计模式------工厂模式
- 设计模式 [ 工厂模式 ]
- 设计模式--工厂模式
- 设计模式-工厂模式
- 设计模式--工厂模式
- 设计模式 工厂模式
- 设计模式-工厂模式
- 设计模式 -- 工厂模式
- 设计模式-工厂模式
- 设计模式----工厂模式
- 设计模式---工厂模式
- 设计模式-工厂模式
- 数据蒋堂 | 迭代聚合语法
- 洛谷P2878 [USACO07JAN]保护花朵Protecting the Flowers(贪心)
- 从1.5K到18K 一个程序员的5年成长之路
- imx6ul设备树pinctrl解析
- Codeforces Round #444 (Div. 2) 总结
- 设计模式思想工厂模式
- 洛谷P2898haybale猜测Haybale Guessing
- Beta分布,二项分布,Dirichlet分布,多项式分布新解
- 给 Web 开发人员推荐的文档生成工具
- 面向对象:每天早上醒来,看见你和阳光都在,这便是我想要的未来
- Angular 5.0 来了,有这些大变化
- 简单工厂模式(思想)
- 【第1099期】Eruda: 手机网页调试利器
- 小程序内嵌网页能力开放