前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式实战 - 抽象工厂模式

设计模式实战 - 抽象工厂模式

作者头像
JavaEdge
修改2021-01-04 22:51:41
6400
修改2021-01-04 22:51:41
举报
文章被收录于专栏:JavaEdge

导读

工厂方法模式人是造出来了,可都是清一色的类型,缺少关爱、仇恨、喜怒哀乐等情绪,人类的生命太平淡了,忘记给人类定义性别了,那怎么办? 从头开始建立所有的事物也是不可能的,那就想在现有的条件下重新造人,尽可能旧物利用嘛 人种(Product产品类)应该怎么改造呢?怎么才能让人类有爱有恨呢?定义互斥的性别,然后在每个个体中埋下一颗种子:异性相吸,成熟后就一定会去找个异性 从设计角度来看,一个具体的对象通过两个坐标就可以确定:肤色和性别

肤色性别坐标图

  • 产品类分析完,生产的工厂类(八卦炉)该怎么改造呢? 只有一个生产设备,要么生产出来的全都是男性,要么都是女性,何以解忧? 把目前已经有的生产设备—八卦炉拆开,于是女娲就使用了“八卦复制术”,把原先的八卦炉一个变两个,并且略加修改,就成了女性八卦炉(只生产女性人种)和男性八卦炉(只生产男性人种),于是就开始准备生产

重新生产人类 一个接口,多个抽象类,然后是N个实现类,每个人种都是一个抽象类,性别是在各个实现类中实现的 特别需要说明的是HumanFactory接口,在这个接口中定义了三个方法,分别用来生产三个不同肤色的人种,也就是我们在坐标图的Y坐标,它的两个实现类分别是性别,也就是坐标图的X坐标 通过X坐标(性别)和Y坐标(肤色)唯一确定了一个生产出来的对象

  • Human接口如代码
  • 人种有三个抽象类,负责人种的抽象属性定义 肤色和语言,白色人种、黑色人种、黄色人种

每个抽象类都有两个实现类,分别实现公共的最细节、最具体的事物:肤色和语言 具体的实现类实现肤色、性别定义

  • 以黄色女性人种为例
  • 黄色男性人种

定义

适用场景

优点

缺点

产品等级结构与产品族

当一个工厂可以创建出分属于不同产品等级结构的一个产品族中的所有对象时 抽象工厂比工厂方法更适合!!!

实践 coding

Java 类相关

Python相关

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.11.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导读
  • 定义
  • 适用场景
  • 优点
  • 缺点
  • 产品等级结构与产品族
  • 实践 coding
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档