工厂模式的定义:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法决定一个类的实例化延迟到其子类。

类图如下:

通用的代码如下:

//抽象产品类
public abstract class Product {// 产品通用的方法.....public void method1(){}//抽象方法public abstract void method2();}
//--------------------------------------产品类------------------------------------------------
//具体类 1
public class ConcreteProduct1 extends Product {@Overridepublic void method2() {// 处理具体产品1的方法
}}//具体产品类2
public class ConcreteProduct2 extends Product {@Overridepublic void method2() {//具体产品2的方法.....
}}//-----------------------------------创建类------------------------------------------
//抽象的创建类
public abstract class Creator {//通过反射创建具体的产品类...public abstract <T extends Product> T  createProduct(Class<T> c);
}//具体的抽象类
public class ConcreteCreator extends Creator {@Overridepublic <T extends Product> T createProduct(Class<T> c) {//产品类....Product product = null;if(product == null){try {product = (Product) Class.forName(c.getName()).newInstance();}catch (Exception  e) {e.printStackTrace();}}//返回.....return (T)product;}}//---------------------------------------------------------Client 类--------------------------------------------------------------------------
public class Client {/** * @Title: main * @Description: 工厂类的Client* @param @param args    设定文件 * @return void    返回类型 * @throws */public static void main(String[] args) {//工厂创建类Creator  creator = new ConcreteCreator();//生成具体产品类1Product  product = creator.createProduct(ConcreteProduct1.class);//继续业务处理
}}

简单工厂类

把类图去掉抽象类 creator类,将ConcreteCreator 方法修改为静态即可。

转载于:https://www.cnblogs.com/tjxwg/p/4056130.html

设计模式之二 工厂模式相关推荐

  1. 虚无空间java下载_Java进阶篇设计模式之二 ----- 工厂模式

    前言 在上一篇中我们学习了单例模式,介绍了单例模式创建的几种方法以及最优的方法.本篇则介绍设计模式中的工厂模式,主要分为简单工厂模式.工厂方法和抽象工厂模式. 简单工厂模式 简单工厂模式是属于创建型模 ...

  2. 设计模式之二——工厂模式

    1.工厂模式简介 1.1定义 简单工厂模式(Simple Factory Pattern):专门定义一个类(工厂类)来负责创建其他类的实例.可以根据创建方法的参数来返回不同类的实例,被创建的实例通常都 ...

  3. getinstance方法详解_二、设计模式总览及工厂模式详解

    二.架构师内功心法之设计模式 2.架构师内功心法之设计模式 2.1.课程目标 1.通过对本章内容的学习,了解设计模式的由来. 2.介绍设计模式能帮我们解决哪些问题. 3.剖析工厂模式的历史由来及应用场 ...

  4. 设计模式系列·抽象工厂模式

    前言 以小说的笔法写的设计模式系列文章,你绝对看得懂![首发于公众号:"聊聊代码"] 设计模式系列·王小二需求历险记(一) 设计模式系列·王小二需求历险记(二) 设计模式系列·封装 ...

  5. 设计模式三—抽象工厂模式

    设计模式三-抽象工厂模式 一.定义 抽象工厂模式是工厂方法模式的进一步抽象.如果产品簇中只有一种产品,则退化为工厂方法模式. 二.原理图 三.代码实例 * 苹果和土豆是园丁1的杰作 * 葡萄和西红柿是 ...

  6. C#设计模式(2)——简单工厂模式

    一.引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式--简单工厂模式. 二.简单工厂 ...

  7. java设计模式3种工厂模式

    java设计模式3种工厂模式 2010-01-08 16:06:36|  分类: JAVA技术|举报|字号 订阅 下载LOFTER客户端 工厂模式分为三种: Simple Factory模式 专门定义 ...

  8. 软件设计模式之路-----工厂模式抽象工厂模式

    系统开发和现实生活是一样的.在现实生活中一个复杂的商品都是通过一个工厂产生,具体工厂怎么产生的我们不需在乎.在软件设计上也可如此,如果一个对象的创建过程比较复杂,便可考虑使用工厂模式. 简单工厂模式 ...

  9. C#设计模式(4)——抽象工厂模式

    C#设计模式(4)--抽象工厂模式 一.引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码),而工厂方法 ...

  10. 设计模式——单例模式、工厂模式

    设计模式--单例模式.工厂模式 一.六大设计原则 开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭.在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热 ...

最新文章

  1. python知识点:文件读写以及其他基础知识点
  2. R安德森-达令检验( Anderson-Darling Test)
  3. 基于 MongoDB 的 python 日志功能
  4. ifconfig 安装_第一章Linux服务器环境搭建之JDK安装
  5. pip源更换为清华源_kali2020更换国内的源
  6. ASP.NET服务器应用程序不可用
  7. (译)如何优化cocos2d程序的内存使用和程序大小:第二部分(完)
  8. RGPNET: A real-time general purpose semantic segmentation(复杂环境下实时通用语义分割网络)
  9. 学习笔记 9.22 -9.29 补
  10. ubuntu18.04播放MP4
  11. bochs的安装和配置
  12. 村上春树《挪威的森林》读书笔记————你以为这只是一本普普通通的恋爱小说?那你就错了。三年后的重新阅读,让我对这本小说有了真正意义上的认识
  13. Delphi with Lua5.1.3
  14. 【037】PhotoMosh–艺术故障图片在线生成器
  15. 027 反三角函数的求导公式推导
  16. 脚本语言有哪些?各自有哪些优劣呢?
  17. 双指数边缘平滑滤波器用于磨皮算法的尝试
  18. idea 离线安装translation 谷歌翻译
  19. 前后端分离微服务管理系统项目实战SaaS-HRM项目(九)——文件上传与PDF报表入门
  20. 用KeyShot工具渲染PCB图过程

热门文章

  1. cockroachdb设计翻译
  2. 安装Centos7时提示 /dev/root does not exits
  3. 富士康对夏普收购报价大幅缩水20多亿美元
  4. WinAPI: GetNextWindow - 获取指定窗口Z上或Z下的窗口的句柄
  5. JAVA OOP(一)——OOP概念,类与对象
  6. linux编辑文本文件aa的命令,Linux如何使用正则表达式命令?文本文件操作命令
  7. 动态规划精卫填海之路
  8. Eclipse打开报错解决方案
  9. ubuntu python3.5安装_Ubuntu14.04安装使用Python3.5
  10. dms系统与mysql_Mysql的两种存储引擎以及区别