一、简单工厂模式

简单工厂模式就是创建一个工厂类,对实现同一个接口的类进行实例化。其UML图如下:

package com.hs.pattern.factory;

public interface Sender {

public void send();

}

package com.hs.pattern.factory;

public class SmsSender implements Sender{

@Override

public void send() {

System.out.println("短信发送");

}

}

package com.hs.pattern.factory;

public class MailSender implements Sender {

@Override

public void send() {

System.out.println("邮件发送");

}

}

package com.hs.pattern.factory;

/**

* 简单工厂模式

* @author Administrator

*

*/

public class SimpleSenderFactory {

public static Sender produce( String sendType ){

if( ("sms").equals(sendType) ){

return new SmsSender();

}else if ( ("mail").equals(sendType) ) {

return new MailSender();

}

return null;

}

}

二、工厂方法模式

在工厂方法模式中,定义了一个用于创建对象的工厂接口,并根据工厂接口的实现类来确定要实现哪个产品。首先来看一下UML图:

工厂方法由四部分构成:

产品接口(Sender):用来定义产品的功能,工厂生产的所有产品对象都要实现该接口,调用者一般跟产品接口打交道。

具体产品类(SmeSender、MailSender):实现了产品接口的类,是产品的具体实现细节。

工厂接口(Factory):工厂接口是工厂方法模式的核心接口,调用者直接与工厂接口交互,用于获取具体的产品实现类。

具体工厂类(SmsFactory、MailFactory):具体工厂类是工厂接口的实现类,用来实例化产品对象,不同的具体工厂类会根据需求实例化不同的产品实现类。

package com.hs.pattern.factory;

public interface Factory {

public Sender produce();

}

package com.hs.pattern.factory;

public class SmsFactory implements Factory {

@Override

public Sender produce() {

return new SmsSender();

}

}

package com.hs.pattern.factory;

public class MailFactory implements Factory {

@Override

public Sender produce() {

return new MailSender();

}

}

工厂设计 java,java 工厂设计模式相关推荐

  1. 设计模式--抽象工厂设计

    抽象工厂:工厂设计的升级版 工厂设计每次只能只要一个产品对象,抽象工厂可以每次创建一个族的对象 四个角色: 抽象工厂 对象等级: 手机 平板 电脑 对象族:苹果手机 苹果平板 苹果电脑 package ...

  2. 《机械制造业智能工厂规划设计》——2.1 智能工厂设计流程

    2.1 智能工厂设计流程 智能工厂的设计流程如图2.1所示. 1.智能工厂设计的总输入是企业的发展战略 大家知道企业发展战略是对企业长远发展的全局性谋划.它是由企业的愿景.使命.政策环境.长期和短期目 ...

  3. 第六周 Java语法总结_设计原则_工厂模式_单例模式_代理模式(静态代理_动态代理)_递归_IO流_网络编程(UDP_TCP)_反射_数据库

    文章目录 20.设计原则 1.工厂模式 2.单例模式 1)饿汉式 2)懒汉式 3.Runtime类 4.代理模式 1)静态代理 2)动态代理 动态代理模板 21.递归 22.IO流 1.File 2. ...

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

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

  5. JAVA设计模式——工厂模式【简单工厂模式、工厂方法模式、抽象工厂模式】

    目录 简单工厂模式 传统方式 简单工厂模式 静态工厂模式 工厂方法模式 抽象工厂模式 工厂模式JDK-Calendar源码分析 工厂模式小结 简单工厂模式   看一个具体的需求 看一个披萨的项目:要便 ...

  6. 【Java提升】设计模式入门教程 工厂模式

    工厂模式是平时开发过程中最常见的设计模式.工厂模式解决类的实例化问题,它属于创建型模式.工厂模式也经常会和其他设计模式组合使用. 试想你去麦当劳买一个汉堡.你只需要告诉收银员要一个xx汉堡.过一会就会 ...

  7. 设计模式之简单工厂模式(Java 实现)

    设计模式之简单工厂模式(Java 实现) 本文首发于http://www.imooc.com/wiki/Designlesson/factory.html 简单工厂模式是平时开发过程中最常见的设计模式 ...

  8. 浅谈工厂设计--java必备技能

    浅谈工厂设计–java必备技能 说到工厂,我就联想到了亚洲的大工厂富士康–接过订单然后按照固定的模板生产商品,其实java中工厂类中的工厂方法也是一样,接过参数,根据参数来生产需要的商品: 今天我们一 ...

  9. 设计模式—抽象工厂模式(java实现示例)

    一.相关定义 抽象工厂: 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种 ...

最新文章

  1. linux ubuntu安装 mono,在Ubuntu 18.04系统中安装Mono及基本使用Mono的方法
  2. Bootstrap 手风琴搭配导航条实现常用菜单栏
  3. Apache常用配置项
  4. Unity中UGUI之Canvas属性解读版本二
  5. gmail收件箱标签设置_通过在Gmail中启用实验室功能来启动收件箱
  6. 在ASP.NET Core中使用EPPlus导入出Excel文件
  7. java工程引入scala_引入ReactiveInflux:用于Scala和Java的无阻塞InfluxDB驱动程序,支持Apache Spark...
  8. 计算机显示文本自定义130%,实训课题目
  9. Mysql 零距离-入门(六)数据唯一约束性
  10. appbarlayout 折叠后 不允许滑动_还在纠结要不要建阳光房?看看可折叠阳光房,或许你就能做选择了...
  11. libpcap 库使用(二)
  12. 导盲机器人 英语作文_小米有品推学习平板:小爱AI陪娃学英语,一台陪娃十年成长...
  13. paip.银联支付接口订单号uuid算法
  14. threejs基于vue加载模型,让模型开启自动旋转 模型位置改变
  15. cad和html5哪个好,最好用的5个CAD软件 你用的是哪款呢
  16. 如何防止form表单的重复提交
  17. 记录前端导出word 本地图片不显示问题
  18. 小米手机拦截返回音设置不了_为了让自己的手机更好用,我利用了MIUI 10的这些功能...
  19. JavaWeb个人博客项目:手把手教你实现博客后台系统之界面图展示1
  20. 考一个华为认证HCIP需要学习那些东西?

热门文章

  1. 解决opencv读取、保存图像失败
  2. php 简转繁体,php 繁体字转化为简体字
  3. 二分图最大匹配及常用建图方法
  4. CSS3之安卓小头像制作
  5. CodeForces 266E More Queries to Array...
  6. 酷派发布新品牌ivvi,精品手机市场格局再变
  7. 【iOS开发】导航栏,类似淘宝“我的淘宝”导航栏
  8. 链路汇聚控制协议LACP
  9. windows cmd http_proxy
  10. 如何使用cmd进入指定文件夹