社区
研发管理
帖子详情
为什么说工厂方法是一个类模式而不是对象模式?
find4me
2003-04-09 03:41:10
Factory Method把一个类的实例化延迟到它的子类, 最终返回给用户还是一个类的实例(对象)呀, 哪怎么说它是一个类模式而不是对象模式呢?
...全文
128
3
打赏
收藏
为什么说工厂方法是一个类模式而不是对象模式?
Factory Method把一个类的实例化延迟到它的子类, 最终返回给用户还是一个类的实例(对象)呀, 哪怎么说它是一个类模式而不是对象模式呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
find4me
2003-04-09
打赏
举报
回复
哦..明白一点, 不过还有一点晕.
不过还是要谢谢你啦!
tinytot
2003-04-09
打赏
举报
回复
你可以参看<<设计模式>>那本书,上面有讲解.
上面描述了设计模式的范围准则。"类模式处理类和子类之间的关
系,这些关系通过继承建立,是静态的,在编译时刻便确定下来了。对象模式处理对象间的
关系,这些关系在运行时刻是可以变化的,更具动态性".
Factory Method将对象的部分创建工作延迟到子类,用户可以通过Creator的工厂方法参数化来决定自己要实例化的类对象, 这是静态的, 在程序编译期间已经确定了实例化的类,例如该书上举的那个有关文档的例子, 用户可以通过菜单来选择当前要处理那一种格式的文档, 如果要处理图形文档则可通过Application来来实例化一个处理图形文档的子类, 如要处理文本则可在工厂方法中实例化一个处理文本文档的子类, 把这些处理完全交给子类来完成, 这些代码完全都写在程序里啦,完全是静态的.
而其他的创建型对象模式则将它延迟到另一个对象中。例如抽象工厂, 可以通过抽象工厂中的一个抽象接口来对一系列相同风格的产品进行实例化, 当然各种不同风格的产品都对应一个抽象工厂, 只不过这些抽象工厂都有一个统一的接口, 那么用户则可以通过实例化一个抽象工厂(即先要得到抽象工厂的对象), 把用户想要的产品通过该对象的来实例化出来, 完全不用用户抄心.而通过抽象工厂来实例化产品是在程序运行期间决定的,他是动态的.
这是我得理解, 希望对你有帮助.
find4me
2003-04-09
打赏
举报
回复
请高人帮我解答................
深度学习算法加速.pptx
深度学习算法加速.pptx
港美股量化交易自动化程序
可实现在一定策略条件下,实现自动发现信号,自动买入、卖出,规避风险,增厚利润
基于数据挖掘的CRM体系在电子商务中应用研究.docx
基于数据挖掘的CRM体系在电子商务中应用研究.docx
教育物联网的应用.pptx
教育物联网的应用.pptx
研发管理
1,268
社区成员
28,284
社区内容
发帖
与我相关
我的任务
研发管理
软件工程/管理 管理版
复制链接
扫一扫
分享
社区描述
软件工程/管理 管理版
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章