首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
2.工厂方法模式
时间:
2019-07-21 23:59:49
阅读:
197
评论:
0
收藏:
0
[点我收藏+]
标签:
多态性
需要
img
任务
场景
调用
道具
uri
接口
一、角色
抽象工厂(Abstract Factory)角色:所有具体工厂类的接口
具体工厂(Concrete Factory)角色 :实现抽象工厂接口的具体工厂类
抽象产品(AbstractProduct)角色 :所有被创建实例的公共接口
具体产品(Concrete Product)角色 :创建的具体实例对象,具体产品由具体的工厂创建
二、适用场景
一个类不知道它所需要的对象的类:在工厂方法模式中,客户端不需要知道具体产品类的类名,只需要知道所对应的工厂即可,具体的产品对象由具体工厂类创建;客户端需要知道创建具体产品的工厂类
一个类通过其子类来指定创建哪个对象:在工厂方法模式中,对于抽象工厂类只需要提供一个创建产品的接口,而由其子类来确定具体要创建的对象,利用面向对象的多态性和里氏
将创建对象的任务委托给多个工厂子类中的某一个,客户端在使用时可以无需关心是哪一个工厂子类创建产品子类,需要时再动态指定,可将具体工厂类的类名存储在配置文件或数据库中
三、实例
图-1中的Factory是抽象工厂角色,CircleFactory、RectangleFactory、SquareFactory是具体工厂角色,它们都实现了Factory接口,并对应的依赖相应的具体产品类Circle、Rectangle、Square,这些具体产品类都实现了抽象产品接口Shape,在客户端进行调用的时候只需要知道具体产品类的具体工厂就可以进行类的创建,还可以写在配置文件中进行工厂类的动态指定
代码地址:
https://github.com/lanhei/DesignPattern/tree/master/src/com/lanhei/patterns/factoryabstract
图-1
2.工厂方法模式
标签:
多态性
需要
img
任务
场景
调用
道具
uri
接口
原文地址:https://www.cnblogs.com/zhongj/p/11221935.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!