java设计模式之【工厂模式】
- 一、工厂模式介绍
- 二、实现
- 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设计模式之【工厂模式】相关推荐
- Java设计模式(工厂模式>抽象工厂模式和原型模式)
Java设计模式Ⅱ 1.工厂模式 1.1 简单工厂模式 1.2 工厂方法模式 2.抽象工厂模式 3.总结 4.原型模式 4.1 原型模式 4.2 浅拷贝 4.3 深拷贝 5.建造者模式 1.工厂模式 ...
- Java 设计模式之工厂模式(二)
原文地址:Java 设计模式之工厂模式(二) 博客地址:http://www.extlight.com 一.背景 本篇内容是 Java 设计模式创建型模式的第二篇.上一篇主题为 <Java 设计 ...
- java设计模式之工厂模式(UML类图分析+代码详解)
大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...
- Java设计模式之工厂模式篇 (转)
Java设计模式之工厂模式篇 (转)[@more@]Java设计模式之工厂模式篇 作者:冯睿 本文选自:赛迪网 2003年03月07日 .NET.com.cn/servlets/ad?Pool=te ...
- Java设计模式之 工厂模式(简单工厂模式)
前一阵子学习了Java 中据说是最简单的设计模式的 单例模式,想一起讨论学习的小伙伴请点击这里: Java 设计模式之单例模式 那么今天就把学习的工厂模式记录下来 工厂模式: 实现了创建者和调用者的分 ...
- Java设计模式之工厂模式 (工厂方法模式)
上一篇我们学习了简单工厂模式,最后对于增加新产品的缺点,我们在工厂方法模式中解决. 为学习简单工厂模式的小伙伴点击这里Java 设计模式之工厂模式(简单工厂模式) 工厂方法模式要点: 避免简单工厂模式 ...
- 【JAVA进阶系列】JAVA 设计模式 -- 抽象工厂模式(Abstract Factory)
[JAVA进阶系列]JAVA 设计模式 -- 抽象工厂模式(Abstract Factory) [1.1]抽象工厂模式简介 抽象工厂者模式的类结构图 AbstractProduct(抽象产品),Abs ...
- JAVA设计模式之工厂模式讲解
目录 前言 开始表演 前言 Java中使用工厂模式的主要原因是为了实现代码的灵活性和可维护性.工厂模式是一种创建型设计模式,它提供了一种将对象的创建和使用进行分离的方式.具体来说,工厂模式可以将对象的 ...
- Java设计模式:工厂模式
问题提出 Java的工厂模式与现实生活中的工厂的模型是很相似的.工厂是用来做什么?当然是用来生成产品.因此在Java的工厂模式的关键点就是如何描述好产品和工厂这2个角色之间的关系. 下面来仔细描述一下 ...
- java设计模式---抽象工厂模式
工厂模式在项目中是常常用到的,有人说只有大项目才会用到,小项目是体会不出来.其实使用设计模式与项目的大小没有实质性的联系.设计模式是经验的总结而不是衡量项目大小的标准. 以开发项目的DAO层为例,在项 ...
最新文章
- 台式机BIOS被加密后密码忘记解决办法
- 搭建 LNMP 环境
- 【控制】《多智能体机器人系统信息融合与协调》范波老师-第5章-强化函数设计方法及其在学习系统的应用
- [BZOJ1030]:[JSOI2007]文本生成器(AC自动机+DP)
- 数据数组赋值_嵌入式-数组赋值
- html5怎么改变submit样式,html5中submit是按钮么
- JS 获取URL 后面的参数
- Mat详解-OpenCV
- html ul左侧浮动,UL里的LI元素左浮动层一行显示时使其居中的方法
- 2021高考技能考试成绩查询,2021年临床技能考试成绩出来了!附查询方式
- Java 14 有哪些新特性?
- iOS 中的视图函数 init initwithnib viewDidLoad viewWillAppear的总结
- php和composer关系_使用Composer管理PHP依赖关系
- Spring动态代理实现
- 观察者研报 | Moon的崛起
- 提取FBX文件中mesh的信息
- 企业完成云转型的成功之道:云成本优化管理
- componentDidMount,react
- html文字/文章段落首行缩进空两格
- 《放学后》-东野圭吾