`
wwwzhouhui
  • 浏览: 359044 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java 设计模式之——简单工厂

阅读更多

简单工厂模式

 1.什么是简单工厂

    由一个工厂类可以根据传入的参量决定创建出哪一种产品类的实例

 2.简单工厂模式的结构

   

从上图可以看出,简单工厂模式涉及到工厂角色、抽象产品角色以及具体产品角色等

三个角色:
 1 工厂类(Creator)角色:担任这个角色的是工厂方法模式的核心,含有与应用紧
密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个
具体Java 类实现。
 2 抽象产品(Product)角色:担任这个角色的类是工厂方法模式所创建的对象的父
类,或它们共同拥有的接口。抽象产品角色可以用一个Java 接口或者Java 抽象类
实现。
 3 具体产品(Concrete Product)角色:工厂方法模式所创建的任何对象都是这个角
色的实例,具体产品角色由一个具体Java 类实现。

 

3: 例子

   Product

 

package design.simpleFactory;
/***********************************************************************   
 *   
 *   Product.java     
 *   @copyright       Copyright:   2009-2012     
 *   @creator         周辉<br/>   
 *   @create-time   Feb 26, 2010   9:28:42 AM   
 *   @revision         $Id:     *   
 ***********************************************************************/
//产品接口
public interface Product {
	 public void getName();   
}

    具体产品Grape

 

package design.simpleFactory;
/***********************************************************************   
 *   
 *   ProductB.java     
 *   @copyright       Copyright:   2009-2012     
 *   @creator         周辉<br/>   
 *   @create-time   Feb 26, 2010   9:30:31 AM   
 *   @revision         $Id:     *   
 ***********************************************************************/
//具体产品Grape
public class Grape implements Product {

	public void getName() {
		System.out.println("Grape");
	}

}

    具体产品Apple

 

package design.simpleFactory;

/***********************************************************************   
 *   
 *   ProductA.java     
 *   @copyright       Copyright:   2009-2012     
 *   @creator         周辉<br/>   
 *   @create-time   Feb 26, 2010   9:29:33 AM   
 *   @revision         $Id:     *   
 ***********************************************************************/
//具体产品Apple  
public class Apple implements Product {

	public void getName() {
		System.out.println("Apple");
	}

}

    ProductCreator

 

package design.simpleFactory;
/***********************************************************************   
 *   
 *   ProductCreator.java     
 *   @copyright       Copyright:   2009-2012     
 *   @creator         周辉<br/>   
 *   @create-time   Feb 26, 2010   9:31:30 AM   
 *   @revision         $Id:     *   
 ***********************************************************************/
public class ProductCreator {
	
	public Product createProduct(String type) { 
		if("Apple".equals(type)){
			return new Apple();
		}
		if("Grape".equals(type)){
			return new Grape();
		}
		else {
			return null;
		}
	}
}

   test

 

package design.simpleFactory;

/***********************************************************************   
 *   
 *   test.java     
 *   @copyright       Copyright:   2009-2012     
 *   @creator         周辉<br/>   
 *   @create-time   Feb 26, 2010   9:33:33 AM   
 *   @revision         $Id:     *   
 ***********************************************************************/
public class test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ProductCreator creator = new ProductCreator();
		creator.createProduct("Apple").getName();
		creator.createProduct("Grape").getName();
	}
}

   具体创建哪个类的时候通过传递参数来创建具体的类

4:适用范围

    在编码时不能预见需要创建哪一种类的实例

    一个类使用它的子类来创建对象

    开发人员不希望创建了哪个类的实例以及如何创建实例的信息暴露给外部程序

5:缺点

    当需要新的产品时候,需要扩展ProductCreator类中createProduct中的方法。

 

 

  • 大小: 12.7 KB
分享到:
评论

相关推荐

    设计模式——简单工厂模式

    这个是http://blog.csdn.net/dawanganban/article/details/9875873博客中java设计模式的源代码。下载前请先看《设计模式——简单工厂》一文。

    设计模式——工厂方法模式

    这个是http://blog.csdn.net/dawanganban/article/details/9877593博客中java设计模式的源代码。下载前请先看《设计模式——工厂方法模式》一文。

    《java设计模式》课后习题模拟试题解答——刘伟.zip

    《java设计模式》课后习题及模拟试题答案

    设计模式——工厂模式在开发中的应用(简单计算器)

    这个是http://blog.csdn.net/dawanganban/article/details/9884681博客中java设计模式的源代码。下载前请先看《设计模式——工厂模式在开发中的应用》一文。

    Java设计模式——工厂设计模式详解

    主要介绍了Java设计模式——工厂设计模式详解,具有一定参考价值,需要的朋友可以了解下。

    java23种设计模式——图解——附带源码

    java23种设计模式 工厂模式 ,抽象工厂,建造者模式,单态模式,原型模式

    Java设计模式 版本2

    Java设计模式,目录:前言,UML建模技术,深入浅出UML类图,从招式与内功谈起——设计模式概述,面向对象设计原则,工厂三兄弟之简单工厂模式,工厂三兄弟之工厂方法模式,工厂三兄弟之抽象工厂模式,确保对象的唯一...

    Java设计模式——工厂设计模式

    简单工厂模式 工厂方法模式 抽象工厂模式 面向对象设计的基本原则: OCP(开闭原则,Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关闭。 DIP(依赖倒转原则,Dependence Inversion Principle):...

    深入浅出设计模式四——比萨店生产比萨实现(工厂方法模式)

    NULL 博文链接:https://quicker.iteye.com/blog/607944

    java设计模式

    目录: 前 言 第一部分 大旗不挥,谁敢冲锋——热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 ...附录:23个设计模式

    设计模式——JAVA.docx

    JAVA设计模式总结之23种设计模式 一:设计模式之六大原则 总原则:开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。 1.Abstract Factory(抽象工厂模式) 2.Adapter(适配器模式)......

    简单工厂模式

    设计模式课程资料——简单工厂模式,使用Java实现,在eclipse进行编译

    Java设计模式:工厂模式——图文+代码示例(通俗易懂)

    先来看看,简单工厂模式——也叫静态工厂模式,这里举个例子:你要去买一台手机,你不用关心手机是怎么生产出来的,里面的零件具体又是怎么制造的,这些通通都交给工厂去处理,你尽管去买手机就好了。 简单工厂模式...

    SETema5:软件设计模式——抽象工厂

    SETema5 软件设计模式——抽象工厂

    深入浅出设计模式(中文版电子版)

    4.4.2现实中的装饰模式——相架 126 4.4.3C#实例——图书馆中的项目 127 4.4.4Java实例——自定义JButton 131 4.4.5优势和缺陷 133 4.4.6应用情景 134 4.5FacadePattern(外观模式) 134 4.5.1定义 134 4.5.2...

    深入浅出设计模式(中文版)

    4.4.2现实中的装饰模式——相架 126 4.4.3C#实例——图书馆中的项目 127 4.4.4Java实例——自定义JButton 131 4.4.5优势和缺陷 133 4.4.6应用情景 134 4.5FacadePattern(外观模式) 134 4.5.1定义 134 4.5.2...

    工厂模式实现数据库的增删改查

    利用JAVA设计模式——工厂模式实现对MYSQL数据库的增删改查

    java和设计模式ppt教程

    java和设计模式ppt包含工厂模式、建造模式、原始模型模式、单例模式、结构模式、适配器、桥梁模式、合成模式、装饰模式、门面模式、享元模式、代理模式、行为模式、解释器模式、迭代子模式、调停者模式、备忘录模式...

    design-pattern-java.pdf

    基础知识 基础知识设计模式概述 从招式与内功谈起——设计模式概述(一) 从招式与内功谈起——设计模式概述(二) 从招式与内功谈起——设计模式概述(三) 面向对象设计原则 面向对象设计原则之单一职责原则 面向...

    设计模式(二) ——工厂模式 (3种工厂模式的实现及优缺点)

    工厂模式(Factory Pattern) 是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个...

Global site tag (gtag.js) - Google Analytics