废话不多说,直接以实例切入!

举例理解:

假如有这样一个需求:某4S店需要订制一批普通轿车和SUV,针对低端客户准备以BYD为主,针对高端用户准备以Porsche为主,以后还可能订制其他品牌的车型;

这里我们就可以开始思考了,首先BYD和Porsche制造轿车和SUV是不会变得,变的是客户的需求,可能今天要BYD,明天有需要porsche,后面有需要BWM了,所以使用抽象工厂模式;

1.首先我们先抽象生产车辆的工厂以及车辆

                    

2.创建具体的工厂 -BYD Factory

 

3.创建具体的工厂 -Porsche Factory

 

4.模拟4S店订制车辆 (这里我使用的是winform,以Porsche为例) 

这样,假如后续4S店需要订制其他品牌的车型,我们就只需要抽象其他品牌的车辆工厂及对应的车辆即可。 

C#设计模式 之 抽象工厂模式相关推荐

  1. 设计模式系列·抽象工厂模式

    前言 以小说的笔法写的设计模式系列文章,你绝对看得懂![首发于公众号:"聊聊代码"] 设计模式系列·王小二需求历险记(一) 设计模式系列·王小二需求历险记(二) 设计模式系列·封装 ...

  2. 设计模式三—抽象工厂模式

    设计模式三-抽象工厂模式 一.定义 抽象工厂模式是工厂方法模式的进一步抽象.如果产品簇中只有一种产品,则退化为工厂方法模式. 二.原理图 三.代码实例 * 苹果和土豆是园丁1的杰作 * 葡萄和西红柿是 ...

  3. 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)

    原文:乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Facto ...

  4. 设计模式复习-抽象工厂模式

    设计模式复习-抽象工厂模式 有两种硬件,PC和Phone,有两种系统,Windows和Linux,现在假设PC和Phone上全都能安装这两个系统,并且将来硬件不会在变化,但是系统可能需要扩展,比如扩展 ...

  5. 设计模式之四(抽象工厂模式第三回合)

    原文:设计模式之四(抽象工厂模式第三回合) 前言 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 抽象工厂模式最大的好处便是易于交换产品系列,由于具体工厂类,例如I ...

  6. python抽象工厂模式_Python设计模式之抽象工厂模式

    Python设计模式之抽象工厂模式 这篇文章主要为大家详细介绍了Python设计模式之抽象工厂模式,感兴趣的小伙伴们可以参考一下 python面向对象编程入门,我们需要不断学习进步 "&qu ...

  7. 设计模式-04抽象工厂模式

    设计模式-04抽象工厂模式 文章中涉及到的代码,请自行下载 https://gitee.com/pan_xiao_lei123/designmode.git 前面介绍的工厂方法模式中考虑的是一类产品的 ...

  8. C#设计模式(4)——抽象工厂模式

    C#设计模式(4)--抽象工厂模式 一.引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码),而工厂方法 ...

  9. 设计模式之抽象工厂模式(Abstract Factory)摘录

    面向对象系统的分析和设计实际上追求的就是两点:高内聚(Cohesion)和低耦合(Coupling). 23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式包括:1.Fa ...

  10. java 工厂模式的写法_Java23种设计模式之抽象工厂模式

    概述 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. ...

最新文章

  1. 搭建网站服务器是选择高配置还是选择性能稳定?
  2. mysql如何实现读提交锁_MySQL学习笔记(二)—MySQL事务及锁详解
  3. proto 指定字段json名_比json快5倍的protobuf了解一下
  4. 洛谷 - P2761 软件补丁问题(spfa+状压)
  5. Java相关资料分享(视频+电子书籍)
  6. mysql存储过程 try_mysql存储过程之异常处理篇
  7. python做一个linux网卡,Linux系统Python可以选择不同网卡进行网络访问吗?
  8. 8. Linux 文件与目录管理
  9. LOJ2336 JOI2017 绳 贪心、构造
  10. C#中的线程(三)多线程
  11. 无线通信原理与应用_车地通信专题(二):深圳地铁3号线车地无线通信系统...
  12. java中括号的匹配_java括号匹配算法
  13. 中首清算:“股神”很闹心,巴菲特曾割肉的航空股竟连续领涨?
  14. 按键精灵——欲望驱使之下的碧蓝航线12-4练级脚本
  15. 词向量表示:word2vec与词嵌入
  16. swagger支持中英文
  17. NetworkX画图:nx.draw_networkx(函数详解)
  18. P2657 [SCOI2009] windy 数(数位DP)
  19. MathType 6.9中平行四边形符号如何输入
  20. datagrip 查询结果不能修改

热门文章

  1. 国产操作系统之优麒麟安装
  2. ~《概率论》~联合分布与边际分布
  3. java从入门到放弃段子_搞笑GIF段子:学习是不可能学习的从入门到放弃
  4. 基于永洪BI部署的自助分析平台(一)
  5. PyKeyBoardFairy可以替代你游戏中的卡键盘和鼠标宏
  6. 2013年最新热门软件分享第一季
  7. hdoj 1570 A C
  8. 在Yalmip中应用SDPT3
  9. C语言运算符和表达式
  10. vs c++ 判断注册表键值是否存在