http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4723|回复: 6

[学习心得] C#抽象工厂适用范围

[复制链接]
发表于 2018-12-27 13:43:19 | 显示全部楼层 |阅读模式
四 、  在什么情形下使用抽象工厂模式 :

在以下情况下应当考虑使用抽象工厂模式:

一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重
要的。

 这个系统有多于一个的产品族,而系统只消费其中某一产品族。
 同属于同一个产品族的产品是在一起使用的,这一约束必须在系统的设计中体现出来。
 系统提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于实现。

五 、  抽象工厂的起源

据说最早的应用是用来创建在不同操作系统的视窗环境下都能够运行的系统。比如在 Windows 与 Unix 系统下
都有视窗环境的构件,在每一个操作系统中,都有一个视窗构件组成的构件家族。我们可以通过一个抽象角色给
出功能描述,而由具体子类给出不同操作系统下的具体实现,如图:

1.png

可以发现上面产品类图有两个产品等级结构,分别是 Button 与 Text;同时有两个产品族:Unix 产品族与
Windows 产品族。

2.png

系统对产品对象的创建要求由一个工厂的等级结构满足。其中有两个具体工厂角色,即 UnixFactory 和
WinFactory。UnixFactory 对象负责创建 Unix 产品族中的产品,而 WinFactory 负责创建 Windows 产品族
中的产品。

3.png

显然一个系统只能够在某一个操作系统的视窗环境下运行,而不能同时在不同的操作系统上运行。所以,系统实
际上只能消费属于同一个产品族的产品。
在现代的应用中,抽象工厂模式的使用范围已经大大扩大了,不再要求系统只能消费某一个产品族了。



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2018-12-27 14:12:49 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-12-27 17:15:02 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-27 17:15:13 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-27 19:57:11 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-28 08:29:50 | 显示全部楼层
无回帖,不论坛,这才是人道。
 楼主| 发表于 2018-12-30 15:47:21 | 显示全部楼层
强烈支持楼主ing……
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-22 19:54

© 2014-2021

快速回复 返回顶部 返回列表