- 浏览: 158722 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
wcnmbbbb:
com.lowagie.text 对应的包呢?
根据数据库注释自动生成数据库文档【支持Oracle和Mysql】 -
greatwqs:
序列化算法这篇不错 : http://greatwqs.ite ...
Java IO 中对象的序列化操作 -
litao11046:
为什么使用get的时候要把具体的方法名加入hidden作为隐藏 ...
Struts DispatchAction基本的请求分发
常用设计模式之 工厂模式
工厂模式有三种常见的实现:
简单工厂模式
工厂方法模式
抽象工厂模式
有时候也把简单工厂模式和工厂方法模式统称为工厂方法模式
简单工厂模式:
1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。
2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。
3) 具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。
实例:
public class TestSampleFactoryMode { /** * 测试简单工厂模式 * @param args */ public static void main(String[] args) { Car car = CarFactory.getCar("BMW"); car.run(); } } /*汽车接口*/ interface Car { void run(); } /*实现类:宝马*/ class BMW implements Car{ @Override public void run() { System.out.println("BMW.run()"); } } /*实现类:奥迪*/ class Audi implements Car{ @Override public void run() { System.out.println("Audi.run()"); } } /*简单工厂模式的实现类*/ class CarFactory{ static Car getCar(String s){ if(s == null){return null;} if("BMW".equalsIgnoreCase(s)){ return new BMW(); } if("Audi".equalsIgnoreCase(s)){ return new Audi(); } return null; }
}
工厂方法模式:
1) 抽象工厂角色:工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。
2) 具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。
3) 抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。
4) 具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。
public class TestFactoryMethodMode { /** * 测试工厂方法模式 * @param args */ public static void main(String[] args) { CarDriver driver = new AudiDriver(); Car car = driver.getCar(); car.run(); } } interface CarDriver{ Car getCar(); } class BMWDriver implements CarDriver{ @Override public Car getCar() { return new BMW(); } } class AudiDriver implements CarDriver{ @Override public Car getCar() { return new Audi(); } }
抽象工厂模式:
1) 系统中有多个产品族,而系统一次只可能消费其中一族产品。
2) 同属于同一个产品族的产品以其使用。
来看看抽象工厂模式的各个角色(和工厂方法的如出一辙):
1) 抽象工厂角色:工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。
2)具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。在java中它由具体的类来实现。
3)抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。
4)具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。
区别就在于产品的复杂程度上,抽象工厂模式最复杂,通常产品有一定的分类,有一族产品
发表评论
-
使用Maven构建一个开源项目的代码结构
2017-01-18 12:29 960本文仅适合maven初学者,适合那些像我一样平时不使用mav ... -
Java Des算法实现高速文件加密解密
2016-06-01 15:09 1717import java.io.FileInputStream ... -
Java比较两个数据库中所有表的区别【支持Oracle和SQLServer】
2014-12-09 14:37 5011开发过程中一般是一开发数据库 一生产数据库。 有时候在开发 ... -
根据数据库注释自动生成数据库文档【支持Oracle和Mysql】
2014-11-28 11:02 4161公司项目比较乱,很多时候都是需要先完成项目再准备文档。 数 ... -
根据SVN日志自动生成补丁包[基于Tomcat的JavaEE项目]
2014-11-25 10:08 2403项目开发过程中代码变化很频繁,需要更新文件时,每次都需要手 ... -
用批处理文件为JavaSE项目快速简单的的加载jar包
2014-02-22 10:39 680JavaSE小项目,有时候需要引入很多jar包,但是手动去修 ... -
java中WebService的HelloWorld
2011-11-14 07:24 1689WebService的HelloWorld 首先,在MyEc ... -
Swing中的JOptionPane类
2011-11-14 07:24 1807Swing中的JOptionPane类详解JOptionPan ... -
java输出PDF文档
2011-11-14 07:24 2748PDF输出用到iText包,由于PDF文档的特殊性,有可能需要 ... -
Java生成图片验证码
2011-11-14 07:24 2836Java生成图片验证码部分代码参考自网易博客白云城主的大作制作 ... -
java生成缩略图
2011-11-11 20:12 1090公司一些项目中经常把用户上传的原图用IMG标签改变尺寸后直接在 ... -
java读取和输出Excel
2011-11-11 20:11 1305Excel读取和输入要用到JXL包 输出Excel的代码示例 ... -
ApacheClient模拟浏览器GET和POST请求
2011-11-11 20:04 2117ApacheClient简介HttpClient ... -
Java IO 中对象的序列化操作
2011-06-12 16:54 1167Java IO 中对象的序列化 ... -
ireport和jasperReport生成统计报表的helloworld
2010-08-04 22:51 2705本文只涉及到简单的动态数据传递 首先使用ireport创建模 ... -
使用Java 发送电子邮件
2010-08-04 22:33 1773一个采用sun的类库的java发送邮件的demo 因为使用的 ... -
Java的远程方法调用 RMI 的 HelloWorld 程序
2010-07-29 16:11 1899本文大部分内容来自 http://www.jspcn.net/ ... -
设计模式 之 单例模式
2010-07-28 21:44 1565单例模式:设计中有时候需要使某个对象在整个系统中只存在一个 ... -
使用递归和dom遍历dom树形结构
2010-07-28 21:39 2610使用递归逆推出xml文件的大体结构 package com. ... -
使用jdom解析xml文件
2010-07-28 21:38 1612使用jdom解析xml package com.dowebb ...
相关推荐
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
根据提供的标题“深入浅出设计模式之工厂模式”与描述“将《Head First 设计模式》(中文版)按章节进行了分割,每章一个文件,方便大家下载”,我们可以推测出这部分内容主要关注的是设计模式中的工厂模式。...
在软件工程领域,设计模式是一种经过验证的、解决常见问题的模板或最佳实践。工厂模式是其中最基础且广泛使用的设计模式之一,它属于创建型模式,主要用于对象的创建。工厂模式的核心理念是提供一个接口或者方法,...
设计模式是软件工程中的一种最佳实践,用于解决常见的设计问题并提供可重用的解决方案。在这些模式中,工厂模式是一种创建型模式,它提供了一种创建对象的最佳方式。在这个"菜鸟教程设计模式之工厂模式代码整理"中,...
工厂方法(Factory Method)是工厂模式的一种具体实现,它是《Head First 设计模式》这本书中讲解的重点之一。在这个模式中,一个工厂类声明了一个创建对象的抽象方法,但并不实现这个方法。而是由子类决定要实例化...
在这个“菜鸟教程设计模式之工厂模式代码整理(反射机制改进版)”中,我们主要探讨的是如何利用Java的反射机制来进一步增强工厂模式的功能。 首先,理解工厂模式的基本概念。工厂模式属于创建型设计模式,它提供了...
### JAVA设计模式之工厂模式 #### 一、工厂模式概述 工厂模式是一种常见的设计模式,主要应用于当系统中存在大量的类实例化需求时。通过工厂模式,我们可以避免直接使用`new`关键字创建对象,而是通过工厂类来创建...
JAVA设计模式之工厂模式是软件开发中一种常用的设计模式,它专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。 一、工厂模式的介绍 工厂模式有三种...
在软件开发中,设计模式是经验丰富的开发者们总结出的解决常见问题的模板或最佳实践。工厂模式作为其中的一种,是对象创建型模式,它的主要目的是为了隔离对象创建过程与客户端之间的关系,使得创建过程更加灵活,...
【Java设计模式之工厂模式Factory】是面向对象编程领域中常用的设计模式,它提供了一种创建对象的最佳方式。工厂模式的主要思想是将对象的创建过程封装起来,使得客户端(使用对象的代码)无需关心对象的具体创建...
设计模式是软件工程中的一种最佳实践,用于解决常见的设计问题并提供可重用的解决方案。在这些模式中,工厂模式是一种创建型模式,它提供了一种创建对象的最佳方式,而无需暴露创建逻辑,使得代码更加灵活,易于扩展...
在计算机科学领域,设计模式是软件工程中用于解决特定问题的一般性方案,它们是经过实践检验的最佳实践。这些模式被广泛应用于面向对象软件设计中,能够提高代码的可重用性、灵活性和可维护性。设计模式通常被划分为...