『设计模式』撩妹秘籍竟是使用设计模式的抽象工厂模式
23种设计模式+额外常用设计模式汇总 (持续更新)
引入:可以跳过
如果存在一部撩妹的手机,加上一个后宫,请问你该怎么做?
砸了手机,跟老婆孩子好好过日子,本篇文章到此结束!
我们强行分析一波,假设存在一位叫做志强的男主(没有在含沙射影)没有砸掉手机,首先每个姑娘都会有名字,防止太多认错了。
我们把维系关系简单的分成:暧昧–闲聊–约(当然是逛商场啦,别想太多) 对于不同的妹子,肯定采用了不同的暧昧,闲聊,约的方式来俘获他么芳心。
如果重构志强与后宫的关系,那么你会发现志强的撩妹方式,直接和名字挂钩,对于每一位姑娘的暧昧–闲聊–约可以看作是一个产品族。志强在某一时刻可以同时存在多个姑娘,但是在某一时刻只能消费一位姑娘(指的逛商场,且不包含多人运动的情况),那么也就是说志强在某一时刻只消费某一产品族。这就是赤裸裸的抽象工厂模式!
我们以一台计算机主机为例,机箱,主板,cpu,内存条,显卡,硬盘是构成一台主机的组成部分,这里我们有Dell一套,华硕一套,惠普一套,那么每一套就是产品族,因为他们包含了所有组成的他们的产品种类,这就是抽象工厂模式。(打钱!!!)
抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
意图:
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
主要解决:
主要解决接口选择的问题。
何时使用:
- 希望一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节时。
- 一个系统有多于一个的产品族,而系统只消费其中某一产品族
角色:
抽象工厂(Abstract Factory)角色:
担任这个角色的是工厂方法模式的核心,它是与应用系统商业逻辑无关的。具体工厂(Concrete Factory)角色:
这个角色直接在客户端的调用下创建产品的实例。这个角色含有选择合适的产品对
象的逻辑,而这个逻辑是与应用系统的商业逻辑紧密相关的抽象产品(Abstract Product)角色:
担任这个角色的类是工厂方法模式所创建的对象的父类,或它们共同拥有的接口。具体产品(Concrete Product)角色:
抽象工厂模式所创建的任何产品对象都是某一个具体产品类的实例。
这是客户端最终需要的东西,其内部一定充满了应用系统的商业逻辑。
厂商看到打钱!『设计模式』撩妹秘籍竟是使用设计模式的抽象工厂模式相关推荐
- 设计模式学习总结1 - 创建型1 - Abstract Factory抽象工厂模式
AbstractFactory抽象工厂模式(创建型) 作用: 这种模式支持创建不同的对象,这些对象功能接近且一般都是在一起创建的.抽象工厂被具体化成不同的工厂来创建类似产品的不同产品.这种模式将类于使 ...
- 『设计模式』HR问了我朋友什么是简单工厂模式,竟被质疑是否学过设计模式,是否是计算机专业?
23种设计模式+额外常用设计模式汇总 (持续更新)越是简单的东西,越是容易被忽略,我来带你们好复习一下! 简单工厂模式 简单工厂模式也被称为静态工厂模式;使用简单工厂模式可以将产品的"消费& ...
- 徒手撸设计模式-抽象工厂模式
概念 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. ...
- 抽象工厂模式 java实例 tclhaier_Unity常用的设计模式_工厂模式系列之抽象工厂模式...
在工厂方法模式中,工厂只负责生产具体的产品,每一个具体的工厂对应着一个具体的产品,工厂方法也具有唯一性,如果有时候我们需要一个工厂方法提供多个产品而不是一个单一的产品,例如:海尔品牌不止生产海尔TV, ...
- 设计模式C#描述——抽象工厂模式
设计模式C#描述--抽象工厂模式 阅读此文应先阅读简单工厂模式与工厂方法模式 抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广. 假设一个子系统需要一些产品对象,而这些产品又属于一个以上的产 ...
- 设计模式之抽象工厂模式(Abstract Factory)摘录
面向对象系统的分析和设计实际上追求的就是两点:高内聚(Cohesion)和低耦合(Coupling). 23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式包括:1.Fa ...
- 设计模式系列·抽象工厂模式
前言 以小说的笔法写的设计模式系列文章,你绝对看得懂![首发于公众号:"聊聊代码"] 设计模式系列·王小二需求历险记(一) 设计模式系列·王小二需求历险记(二) 设计模式系列·封装 ...
- 设计模式之工厂类模式总结对比、简单工厂模式、工厂方法模式、抽象工厂模式、带反射的工厂模式、例子代码分析、最详细
1. 题目 假设某公司同时用SqlServer.MySql数据库,即会切换两数据库(不同数据库的sql语句有些许差异),同时,两数据库里均有对Users.Departments表的操作(sql代码不一 ...
- java 工厂模式的写法_Java23种设计模式之抽象工厂模式
概述 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. ...
最新文章
- vbs字符串正则_VBscript中的正则表达式
- 制作 OpenStack Linux 镜像 - 每天5分钟玩转 OpenStack(151)
- 恶作剧程序之炸弹窗口
- nagios 使用mysql_Nagios监控MySQL
- BPSK调制下(2,1,3)、(2,1,6)卷积码与QC-LDPC码译码性能和抑制突发噪声性能对比(MATLAB实现)
- CentOS 5.5搭建Apache+PHP5.2x+MySQL5+Zend3(yum安装)
- TensorFlow tf.keras.layers.GlobalAveragePooling1D
- 如何让Android横竖屏切换时不销毁当前activity
- BootstrapTable的使用教程
- 网页链接在线提取工具-免费网页链接在线提取软件
- 物联网通信协议-modbus
- 一文读懂社交网络分析(附应用、前沿、学习资源)
- 舞台音效控制软件_舞台音乐控制软件下载
- 大学到底教会了我们什么?
- walking机器人入门教程-单点导航
- iPhone 邮件html设置,iphone手机邮件设置教程
- Origin 导入数据画图使用经验总结
- python编号/排序/翻转/并行迭代使用场景及作用
- 网管软件 LANDesk的配置(视频配截图)
- 【笔记】播放器 - mpv - 使用、配置
热门文章
- java中怎么表示数组中的某个值_简易Java(12):如何高效检查一个数组中是否包含某个值?...
- easypoi 多sheet导入_快速Office,PDF 开发 工具 EasyPoi
- iOS 系统汉化的plist设置
- 获取手机信息(UIDevice、NSBundle、NSLocale)
- 商品管理到底重不重要?
- SQL Server 将一个表中字段的值复制到另一个表的字段中
- linux命令:iptables、modprobe装载模块、网络防火墙服务
- union 和 union all
- jdbctemplate 批量操作
- Tomcat 总体结构
- 设计模式学习总结1 - 创建型1 - Abstract Factory抽象工厂模式