设计模式之二 工厂模式
工厂模式的定义:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法决定一个类的实例化延迟到其子类。
类图如下:
通用的代码如下:
//抽象产品类 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
设计模式之二 工厂模式相关推荐
- 虚无空间java下载_Java进阶篇设计模式之二 ----- 工厂模式
前言 在上一篇中我们学习了单例模式,介绍了单例模式创建的几种方法以及最优的方法.本篇则介绍设计模式中的工厂模式,主要分为简单工厂模式.工厂方法和抽象工厂模式. 简单工厂模式 简单工厂模式是属于创建型模 ...
- 设计模式之二——工厂模式
1.工厂模式简介 1.1定义 简单工厂模式(Simple Factory Pattern):专门定义一个类(工厂类)来负责创建其他类的实例.可以根据创建方法的参数来返回不同类的实例,被创建的实例通常都 ...
- getinstance方法详解_二、设计模式总览及工厂模式详解
二.架构师内功心法之设计模式 2.架构师内功心法之设计模式 2.1.课程目标 1.通过对本章内容的学习,了解设计模式的由来. 2.介绍设计模式能帮我们解决哪些问题. 3.剖析工厂模式的历史由来及应用场 ...
- 设计模式系列·抽象工厂模式
前言 以小说的笔法写的设计模式系列文章,你绝对看得懂![首发于公众号:"聊聊代码"] 设计模式系列·王小二需求历险记(一) 设计模式系列·王小二需求历险记(二) 设计模式系列·封装 ...
- 设计模式三—抽象工厂模式
设计模式三-抽象工厂模式 一.定义 抽象工厂模式是工厂方法模式的进一步抽象.如果产品簇中只有一种产品,则退化为工厂方法模式. 二.原理图 三.代码实例 * 苹果和土豆是园丁1的杰作 * 葡萄和西红柿是 ...
- C#设计模式(2)——简单工厂模式
一.引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式--简单工厂模式. 二.简单工厂 ...
- java设计模式3种工厂模式
java设计模式3种工厂模式 2010-01-08 16:06:36| 分类: JAVA技术|举报|字号 订阅 下载LOFTER客户端 工厂模式分为三种: Simple Factory模式 专门定义 ...
- 软件设计模式之路-----工厂模式抽象工厂模式
系统开发和现实生活是一样的.在现实生活中一个复杂的商品都是通过一个工厂产生,具体工厂怎么产生的我们不需在乎.在软件设计上也可如此,如果一个对象的创建过程比较复杂,便可考虑使用工厂模式. 简单工厂模式 ...
- C#设计模式(4)——抽象工厂模式
C#设计模式(4)--抽象工厂模式 一.引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码),而工厂方法 ...
- 设计模式——单例模式、工厂模式
设计模式--单例模式.工厂模式 一.六大设计原则 开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭.在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热 ...
最新文章
- python知识点:文件读写以及其他基础知识点
- R安德森-达令检验( Anderson-Darling Test)
- 基于 MongoDB 的 python 日志功能
- ifconfig 安装_第一章Linux服务器环境搭建之JDK安装
- pip源更换为清华源_kali2020更换国内的源
- ASP.NET服务器应用程序不可用
- (译)如何优化cocos2d程序的内存使用和程序大小:第二部分(完)
- RGPNET: A real-time general purpose semantic segmentation(复杂环境下实时通用语义分割网络)
- 学习笔记 9.22 -9.29 补
- ubuntu18.04播放MP4
- bochs的安装和配置
- 村上春树《挪威的森林》读书笔记————你以为这只是一本普普通通的恋爱小说?那你就错了。三年后的重新阅读,让我对这本小说有了真正意义上的认识
- Delphi with Lua5.1.3
- 【037】PhotoMosh–艺术故障图片在线生成器
- 027 反三角函数的求导公式推导
- 脚本语言有哪些?各自有哪些优劣呢?
- 双指数边缘平滑滤波器用于磨皮算法的尝试
- idea 离线安装translation 谷歌翻译
- 前后端分离微服务管理系统项目实战SaaS-HRM项目(九)——文件上传与PDF报表入门
- 用KeyShot工具渲染PCB图过程
热门文章
- cockroachdb设计翻译
- 安装Centos7时提示 /dev/root does not exits
- 富士康对夏普收购报价大幅缩水20多亿美元
- WinAPI: GetNextWindow - 获取指定窗口Z上或Z下的窗口的句柄
- JAVA OOP(一)——OOP概念,类与对象
- linux编辑文本文件aa的命令,Linux如何使用正则表达式命令?文本文件操作命令
- 动态规划精卫填海之路
- Eclipse打开报错解决方案
- ubuntu python3.5安装_Ubuntu14.04安装使用Python3.5
- dms系统与mysql_Mysql的两种存储引擎以及区别