设计模式 — 简单工厂模式
一点点
工厂模式是我们最为常用的设计模式之一,目的是用于隐藏创建对象的细节。
工厂模式的核心是: 工厂类(Factory)。工厂类作为中间人的角色帮我们创建对象。通俗点说:我们要获取对象时,不是通过自己new出来的,而是通过工厂类来帮我们创建的。
工厂模式可以细分为:简单工厂、工厂方法 和 抽象工厂
简单工厂模式案例:
1. 抽象出一个顶级的接口
I18N
(作为工厂类的返回对象使用)2. 创建3个实现类
Chinese
,Britain
和Japanese
,并实现I18N
接口3. 创建
I18NFactory
工厂类,并提供一个静态方法来创建实现类对象,该静态方法会返回一个I18N
具体实现类的对象。4. 然后使用者就可以直接面向工厂类进行开发咯
步骤 1
创建一个接口:
package com.cd.design.factory;/*** @Author: 落叶无痕* @Date: 2020/4/21 1:19*/
public interface I18N {//抽象出来的最顶级的方法String getLanguage();}
步骤 2
创建实现接口的实体类
public class Chinese implements I18N {@Overridepublic String getLanguage() {return "中文. . .";}}
public class Britain implements I18N {@Overridepublic String getLanguage() {return "英语. . .";}}
public class Japanese implements I18N {@Overridepublic String getLanguage() {return "日语. . .";}}
步骤 3
创建一个工厂,根据传递的实现类类型信息创建实现类对象。
public class I18NFactory {/* 根据传递的实现类类型信息创建实现类对象*这里使用static修饰,这样就可以直接类名.方法名调用该方法。即可以简化开发,又节省了创建对象带来的消耗。*/public static I18N getI18NObject(String area){if(area.equals("Chinese")){return new Chinese();}else if(area.equals("Britain")){return new Britain();}else if(area.equals("Chinese")){return new Japanese();}else {return null;}}}
步骤 4
使用该工厂,通过传递类型获取指定指定实现类对象。
package com.cd.design.factory;/*** @Author: 落叶无痕* @Date: 2020/4/21 1:18*/
public class Software {public static void main(String[] args) {//更改getI18NObject()方法的参数值,获得不同类的对象I18N i18N = I18NFactory.getI18NObject("Chinese"); System.out.println(i18N.getLanguage());}}
简单工厂总结:
何时使用:明确地计划在不同条件下创建不同实例时(要创建实例的类所实现的功能都大致相同)
优点:1. 使用者想创建一个类,只需知道其名称即可。2.屏蔽了类的对象的创建逻辑和具体实现,使用者只需关心实现接口。
设计模式 — 简单工厂模式相关推荐
- JavaScript设计模式--简单工厂模式例子---XHR工厂
JavaScript设计模式--简单工厂模式例子---XHR工厂 第一步,Ajax操作接口(目的是起一个接口检测作用) (1)引入接口文件 //定义一个静态方法来实现接口与实现类的直接检验 //静态方 ...
- 三角形圆形创建与擦除java_设计模式---------------简单工厂模式
设计模式---------------简单工厂模式 一.题目(Question) 使用简单工厂模式设计一个可以创建不同几何形状(如圆形.方形和三角形等)的绘图工具,每个几何图形都要有绘制draw()和 ...
- 设计模式—简单工厂模式
前言 简单工厂模式是一种比较容易理解的设计模式 简单工厂模式介绍 在设计模式中,简单工厂模式可以理解为负责生产对象的一个类,当使用new 关键字创建一个对象时,此时该类就依赖于这个对象,也就是他们间的 ...
- 设计模式 - 简单工厂模式
文章目录 设计模式 - 简单工厂模式 1.意图 2.实例 1.创建颜色接口 - 定义生产的产品是什么 2.创建颜色枚举 - 定义生产哪些类型的产品 3.根据颜色枚举创建产品 - 根据产品清单生产产品 ...
- 设计模式--简单工厂模式
什么是工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对 ...
- C#设计模式--简单工厂模式
设计模式: 简单工厂模式(Simple Factory Pattern) 介绍:简单工厂模式不是Gof23种设计模式之一.但它在实际的编程中经常被用到,而且思想也非常简单,下面简单举例说明: 简单工厂 ...
- C++设计模式--简单工厂模式
概述 工厂模式:封装对象的实现.它可能是所有设计模式中最有用的模式之一了.这里要说的是简单工厂模式,又称为静态方法工厂模式,属于创建性模式.其原理就是通过传入的参数来判断应该创建什么对象. UML 类 ...
- 设计模式 简单工厂模式
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂 ...
- 面向对象编程设计模式--简单工厂模式讲解(历史上最简单明白的例子)
工作之余,在看资料过程中发现一个极易理解的简单工厂模式的例子,自己亲自试练一番,感觉对这个设计模式不熟悉的朋友, 一看马上就知道是什么回事了. 简单工厂模式根据提供给它的数据,返回几个可能类中的一个类 ...
- java工厂模式 uml_深入浅出设计模式-简单工厂模式
模式定义 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式定义了一个创建对象的类,由这个类来封装实例化 ...
最新文章
- AI | 优化背后的数学基础
- laravel-admin集成ueditor编辑器的图片列表显示问题解决方法
- DSP集成开发工具CCS的Git工具使用说明(二)
- App推荐 | Google Tasks
- Linux系统日志切割
- iOS屏幕适配方案-Auto Layout
- TCP粘包问题分析和解决(全)
- 信息学奥赛一本通 1044:判断是否为两位数 | OpenJudge NOI 1.4 06
- HTML单页营销宣传专题页源码
- centos5.5安装ispcp
- SiteMesh JSP布局框架介绍
- 4. Phpstorm svn
- textbox++问题 汇总 如:assert len 0 builtin_function_or_method() int()
- MODIS数据下载之USGS下载流程
- 第十章 DirectX 绘制简单场景,地形,天空盒和跟随摄像机(上)
- r语言如何计算t分布临界值_医学统计与R语言:这个Calibration plot有点色!
- 制作游戏3D模型都有哪些步骤流程
- sublimit 编辑器扩展_视频字幕编辑工具-字幕编辑器(Subtitle Edit)下载v3.5.17 多语中文版-西西软件下载...
- 在线小游戏,在线小游戏大全,网页在线小游戏大全
- GitWeb服务器搭建