• 一、工厂模式介绍
  • 二、实现
    • 1. 创建[制造手机]接口(PhoneShape)
    • 2. 创建实现类(Mi、Huawei、Apple)
    • 3. 定义手机工厂类( PhoneShapeFactory)
    • 4. 使用工厂,通过传递类型信息来获取实体类的对象。

一、工厂模式介绍

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

主要解决:主要解决接口选择的问题。

何时使用:我们明确地计划不同条件下创建不同实例时。

如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。

关键代码:创建过程在其子类执行。

二、实现

结构图

1. 创建[制造手机]接口(PhoneShape)

public interface PhoneShape {void create();
}

2. 创建实现类(Mi、Huawei、Apple)

public class Mi implements PhoneShape{@Override public void create() {System.out.println("生产一批小米手机!");}
}
public class Huawei implements PhoneShape {@Override public void create() {System.out.println("生产一批华为手机!");}
}
public class Apple implements PhoneShape{@Override public void create() {System.out.println("生产一批苹果手机!");}
}

3. 定义手机工厂类( PhoneShapeFactory)

public class PhoneShapeFactory {/*** @param brand 手机品牌* @return 手机信息*/public PhoneShape getPhoneShape(String brand){if(brand==null){return null;}//判断手机品牌switch (brand){case "Mi":return new Mi();case "Huawei":return new Huawei();case "Apple":return new Apple();default:return null;}}
}

4. 使用工厂,通过传递类型信息来获取实体类的对象。

public class FactoryPatternDemo {public static void main(String[] args) {PhoneShapeFactory factory = new PhoneShapeFactory();//小米通过工厂生产一批手机PhoneShape miPhoneShape = factory.getPhoneShape("Mi");miPhoneShape.create();//华为通过工厂生产一批手机PhoneShape huaweiPhoneShape = factory.getPhoneShape("Huawei");huaweiPhoneShape.create();//苹果通过工厂生产一批手机PhoneShape applePhoneShape = factory.getPhoneShape("Apple");applePhoneShape.create();}
}

运行结果:

java设计模式之【工厂模式】相关推荐

  1. Java设计模式(工厂模式>抽象工厂模式和原型模式)

    Java设计模式Ⅱ 1.工厂模式 1.1 简单工厂模式 1.2 工厂方法模式 2.抽象工厂模式 3.总结 4.原型模式 4.1 原型模式 4.2 浅拷贝 4.3 深拷贝 5.建造者模式 1.工厂模式 ...

  2. Java 设计模式之工厂模式(二)

    原文地址:Java 设计模式之工厂模式(二) 博客地址:http://www.extlight.com 一.背景 本篇内容是 Java 设计模式创建型模式的第二篇.上一篇主题为 <Java 设计 ...

  3. java设计模式之工厂模式(UML类图分析+代码详解)

    大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...

  4. Java设计模式之工厂模式篇 (转)

    Java设计模式之工厂模式篇 (转)[@more@]Java设计模式之工厂模式篇 作者:冯睿  本文选自:赛迪网 2003年03月07日 .NET.com.cn/servlets/ad?Pool=te ...

  5. Java设计模式之 工厂模式(简单工厂模式)

    前一阵子学习了Java 中据说是最简单的设计模式的 单例模式,想一起讨论学习的小伙伴请点击这里: Java 设计模式之单例模式 那么今天就把学习的工厂模式记录下来 工厂模式: 实现了创建者和调用者的分 ...

  6. Java设计模式之工厂模式 (工厂方法模式)

    上一篇我们学习了简单工厂模式,最后对于增加新产品的缺点,我们在工厂方法模式中解决. 为学习简单工厂模式的小伙伴点击这里Java 设计模式之工厂模式(简单工厂模式) 工厂方法模式要点: 避免简单工厂模式 ...

  7. 【JAVA进阶系列】JAVA 设计模式 -- 抽象工厂模式(Abstract Factory)

    [JAVA进阶系列]JAVA 设计模式 -- 抽象工厂模式(Abstract Factory) [1.1]抽象工厂模式简介 抽象工厂者模式的类结构图 AbstractProduct(抽象产品),Abs ...

  8. JAVA设计模式之工厂模式讲解

    目录 前言 开始表演 前言 Java中使用工厂模式的主要原因是为了实现代码的灵活性和可维护性.工厂模式是一种创建型设计模式,它提供了一种将对象的创建和使用进行分离的方式.具体来说,工厂模式可以将对象的 ...

  9. Java设计模式:工厂模式

    问题提出 Java的工厂模式与现实生活中的工厂的模型是很相似的.工厂是用来做什么?当然是用来生成产品.因此在Java的工厂模式的关键点就是如何描述好产品和工厂这2个角色之间的关系. 下面来仔细描述一下 ...

  10. java设计模式---抽象工厂模式

    工厂模式在项目中是常常用到的,有人说只有大项目才会用到,小项目是体会不出来.其实使用设计模式与项目的大小没有实质性的联系.设计模式是经验的总结而不是衡量项目大小的标准. 以开发项目的DAO层为例,在项 ...

最新文章

  1. 台式机BIOS被加密后密码忘记解决办法
  2. 搭建 LNMP 环境
  3. 【控制】《多智能体机器人系统信息融合与协调》范波老师-第5章-强化函数设计方法及其在学习系统的应用
  4. [BZOJ1030]:[JSOI2007]文本生成器(AC自动机+DP)
  5. 数据数组赋值_嵌入式-数组赋值
  6. html5怎么改变submit样式,html5中submit是按钮么
  7. JS 获取URL 后面的参数
  8. Mat详解-OpenCV
  9. html ul左侧浮动,UL里的LI元素左浮动层一行显示时使其居中的方法
  10. 2021高考技能考试成绩查询,2021年临床技能考试成绩出来了!附查询方式
  11. Java 14 有哪些新特性?
  12. iOS 中的视图函数 init initwithnib viewDidLoad viewWillAppear的总结
  13. php和composer关系_使用Composer管理PHP依赖关系
  14. Spring动态代理实现
  15. 观察者研报 | Moon的崛起
  16. 提取FBX文件中mesh的信息
  17. 企业完成云转型的成功之道:云成本优化管理
  18. componentDidMount,react
  19. html文字/文章段落首行缩进空两格
  20. 《放学后》-东野圭吾

热门文章

  1. SpringBoot——自学笔记
  2. 小强统一认证中心-项目工程介绍
  3. HashMap为什么线程不安全?
  4. 算法注册机编写扫盲---第二课
  5. C语言程序——摄氏度和华氏度之间的转换
  6. 腾讯开放平台开发者星级服务:全面监控Crash
  7. 【Beta】 第二次Daily Scrum Meeting
  8. 安装win7时,显示缺少所需的CD/DVD驱动器设备驱动程序
  9. 开机后黑屏看不到桌面_开机不显示桌面黑屏怎么办_win10开机黑屏啥也没有的解决办法...
  10. 电视台工作计算机管理,电视台工作岗位有哪些