java设计模式_工厂模式
关于设计模式
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结,是一种设计思维,使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化。使用设计模式,使得开发变得更规范和简单。
工厂模式
- 概述:属于创建型设计模式,需要生成的对象叫做产品 ,生成对象的地方叫做工厂。
- 使用场景:在任何需要生成复杂对象的地方,都可以使用工厂方法模式, 直接用new可以完成的不需要用工厂模式。个人理解,重点就是这个复杂 (构造函数有很多参数)和 是否可以 直接用new。
工厂模式例子
假设现在的场景是某个宝马子生产公司,正在按需求生产宝马汽车,那么,如下:
- 公司具有宝马汽车,该公司的汽车都有共同的行为所以有了该汽车公司的一个接口,用来规范该公司的所有汽车的行为属性,这里假设,只有展示行为——show();
1 /**
2 * 接口:定义该公司产品的通用属性和行为
3 * @author
4 *
5 */
6
7 public interface BmwCar {
8
9 public String showBmwCar();
10 }- 具体实现该接口,也就是实现该公司符合该要求的汽车产品,如下,假设,该生产公司只生产Bmw523和Bmw320两个产品;
1 public class Bmw523 implements BmwCar{
2
3 @Override
4 public String showBmwCar() {
5 String Bmw523Info = "我是Bmw523";
6 return Bmw523Info;
7 }
8
9 }public class Bmw320 implements BmwCar{ @Override
public String showBmwCar() {
String Bmw320Info = "我是Bmw320";
return Bmw320Info;
} }- 来一个具体生产创作汽车产品的具体工厂BmwFactory;
1 /**
2 * 具有生产功能的工厂
3 * @author
4 *
5 */
6
7 public class BmwFactory {
8
9 public BmwCar createBmw320() {
10 return new Bmw320();
11 }
12
13 public BmwCar createBmw532() {
14 return new Bmw523();
15 }
16 }- 来一个实例测试,我要买车啦
1 public class TestCreateBmw {
2
3 public static void main(String[] args) {
4
5 BmwFactory myFactory = new BmwFactory();//实例化工厂
6 BmwCar myBmw = myFactory.createBmw320();//实例化一个产品
7 System.out.println( myBmw.showBmwCar() );//使用该产品
8 }
9
10 }
*
java设计模式_工厂模式的更多相关文章
- java设计模式2————工厂模式
1.工厂模式介绍: 1.1.实现了创建者与调用者的分离 1.2.详细分类: 简单工厂模式 工厂方法模式 抽象工厂模式 1.3.所遵循的OOP原则: 开闭原则:对扩展开放,对修改关闭 依赖倒转原则:面向 ...
- 浅析JAVA设计模式之工厂模式(一)
1 工厂模式简单介绍 工厂模式的定义:简单地说,用来实例化对象,取代new操作. 工厂模式专门负责将大量有共同接口的类实例化.工作模式能够动态决定将哪一个类实例化.不用先知道每次要实例化哪一个类. 工 ...
- Java设计模式之工厂模式(Factory模式)介绍(转载)
原文见:http://www.jb51.net/article/62068.htm 这篇文章主要介绍了Java设计模式之工厂模式(Factory模式)介绍,本文讲解了为何使用工厂模式.工厂方法.抽象工 ...
- Java 设计模式之工厂模式(二)
原文地址:Java 设计模式之工厂模式(二) 博客地址:http://www.extlight.com 一.背景 本篇内容是 Java 设计模式创建型模式的第二篇.上一篇主题为 <Java 设计 ...
- 浅析JAVA设计模式之工厂模式(二)
1 工厂方法模式简单介绍 工厂方法 (Factroy Method)模式:又称多态性工厂模式(Polymorphic Factory),在这样的模式中,核心工厂不再是一个详细的类.而是一个抽象工厂,提 ...
- java 设计模式之工厂模式与反射的结合
工厂模式: /** * @author Rollen-Holt 设计模式之 工厂模式 */ interface fruit{ public abstract void eat(); } ...
- JAVA设计模式--抽象工厂模式
抽象工厂设计模式 1.系统中有多个产品族,而系统一次只可能消费其中一族产品2.同属于同一个产品族的产品以其使用.来看看抽象工厂模式的各个角色(和工厂方法的如出一辙):抽象工厂角色: 这是工厂方法模式的 ...
- Java设计模式之-----工厂模式(简单工厂,抽象工厂)
一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factor ...
- Java设计模式之工厂模式(简单工厂模式+工厂方法模式)
摘自http://blog.csdn.net/jason0539/article/details/23020989 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是 ...
随机推荐
- 剖析虚幻渲染体系(11)- RDG
目录 11.1 本篇概述 11.2 RDG基础 11.2.1 RDG基础类型 11.2.2 RDG资源 11.2.3 RDG Pass 11.2.4 FRDGBuilder 11.3 RDG机制 11 ...
- 阿里云服务器部署mongodb
在阿里云上买了个服务器,部署mongodb遇到一些坑,解决办法也是从网上搜集而来,把零零碎碎的整理记录一下. 服务器是:Alibaba Cloud Linux 下载安装 mongodb官网下载实在是太 ...
- css 文字超出俩行省略号显示
.center-titles{ overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: ...
- Python - 面向对象编程 - __del__() 析构方法
del 语句 Python 提供了 del 语句用于删除不再使用的变量 语法 del 表达式 删除变量的栗子 var = "hello" del var print(var) # ...
- view+element+java登陆验证码
一.前端: 1.页面标签: <el-row :gutter="20"> <el-col :span="24"> <el-input ...
- python库--pandas--MultiIndex
*表示后面会重复用到此参数 创建层次化索引 pd.MultiIndex 构造器 MI levels 每个级别不重复的标签 labels 每个级别的整数指定每个位置 *sortorder=None ...
- javassist 使用笔记
javassist Javassist 是一个开源的分析.编辑和创建Java字节码的类库.其主要的优点,在于简单,而且快速.直接使用 java 编码的形式,而不需要了解虚拟机指令,就能动态改变类的结构 ...
- git各种操作:基本操作 and 多人协作 and 冲突解决
git基本操作 git 上次文件到远程仓库(参考:https://blog.csdn.net/beiqiaofeng123/article/details/104859326) 如果第一次上传,配置一 ...
- Vue项目-初始化之 vue-cli
1.初始化项目 a.Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vue/cli + @vue/cli-servi ...
- 从 1 开始学 JVM 系列 | JVM 类加载器(一)
从 1 开始学 JVM 系列 类加载器,对于很多人来说并不陌生.我自己第一次听到这个概念时觉得有点"高大上",觉得只有深入 JDK 源码才会触碰到 ClassLoader,平时都是 ...