设计模式之简单工厂模式

原创 2012年03月21日 20:37:09

   今天开始研究设计模式,为此买了一本书,准备好好看看,毕竟只有掌握了原理性的东西才会有质的提高,垒砖民工不是我的目标,设计师才是。

简单工厂模式

      简单工厂是用来创建合适的实现类的,怎么说呢,通过实例来说明比较好。

在面向接口编程中,客户端不需要知道接口的具体实现,那么如何得到接口的实例呢?可通过简单工厂的模式来获取

如:

/**
 * 定义一个接口A
 * 
 * @author smile
 * 
 */
public interface A {
	/**
	 * 接口中实现某功能的方法
	 */
	public void dosomting();
}

然后,在定义一个接口A的实现类

public class ImplA implements A {

	@Override
	public void dosomting() {
		System.out.println("我实现了接口A");
	}

}

通常客户端会这样调用,A a=new ImpA();但是这样既知道了接口 有知道了实现类,与“封装隔离”的原则冲突,当然在小型项目中我觉得这样也行,假如非要纠结于封装隔离,那么就需要简单工厂来解决了。

定义一个Factory

/**
 * 一个工厂类用来创建接口的实现类实例
 * 
 * @author smile
 * 
 */
public class Factory {
	public static int type_A = 1;// A接口类型
	public static int type_B = 2;// B接口类型

	/**
	 * 根据传进来的接口类型type参数来创建对应接口的实现类实例
	 * 
	 * @param type
	 *            接口类型
	 * @return 接口实现类实例
	 */
	public static Object create(int type) {
		Object obj = null;
		// 创建接口A的实例
		if (type == type_A) {
			obj = new ImplA();
		} else if (type == type_B) {
			// 这里就省略了。。。。。
		}
		return obj;

	}

}

那么,客户端就可以这样调用了:

A a=Factory.create(1);

这样客户端只需要得到接口的实例,就可以使用其有的功能了。将具体实现隔离开来,接口A是客户端与被隔离体之间的唯一桥梁。

java设计模式学习笔记之计算器中的简单工厂模式

java设计模式学习笔记之计算器中的简单工厂模式 最近在重温设计模式,偶然看到程杰的《大话设计模式》写的非常不错、通俗易懂,之后的一系列都是学习的笔记,仅此记录。 一、情景回放:某校大二软件工程专...
  • qq137722697
  • qq137722697
  • 2016年11月30日 21:56
  • 2286

设计模式——简单工厂(又叫静态工厂方法,不属于GOF23中设计模式)

简单工厂模式属于类的创新型模式,又叫静态工厂方法模式,是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 —————————————————————————————————...
  • sunqingzhong44
  • sunqingzhong44
  • 2016年07月01日 10:01
  • 242

C++ 设计模式之——简单工厂模式(SimpleFactoryPattern)

简单工厂模式   简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建...
  • nie2314550441
  • nie2314550441
  • 2016年02月18日 17:40
  • 423

设计模式(四)简单工厂模式

简单工厂模式属于创建型模式又叫做静态工厂方法模式,是由一个工厂对象决定创建出哪一种产品类的实例。...
  • itachi85
  • itachi85
  • 2016年02月12日 17:19
  • 8292

简单工厂设计模式的好处

简单工厂:单独的,创建对象,返回对象。 在一个方法中创建好对象,调用此方法即根据传入参数可获得到不同需求的对象,我曾纳闷为什么要单独创建对象,为什么不直接new对象使用? 唉,好处就在这儿,咋想想...
  • Java_Dmz
  • Java_Dmz
  • 2017年09月02日 13:58
  • 237

Android重拾设计模式系列——简单工厂模式

定义及实质 定义 提供一个创建对象实例的功能(接口),而客户调用时无须关心实现过程。属于创建型模式。 实质 选择实现。 模式图解简单工厂模式UML图 解释: 从上图可以看出: 1. Fact...
  • qq_31370269
  • qq_31370269
  • 2016年11月10日 16:50
  • 1881

C语言实现设计模式之简单工厂模式(无内存泄露)

最近工作之余研究一下设计模式细节方面的东西,很多经典的东西需要一遍遍去读、去理解,设计模式就是这样的程序设计的经典之作。 我一直坚信学习是把书读薄,又把书读厚的过程,最终达到游刃有余。 言归正传,接下...
  • mayuming77
  • mayuming77
  • 2014年09月06日 15:46
  • 481

python实现常见的设计模式-简单工厂模式

《大话设计模式》这本书中各种设计模式的python代码实现。简单工厂模式的UML图 工厂模式在很多场景都可以应用,运用类的继承、多态等强大的特点可以有效减少代码冗余,提高代码的高可复用性。#! /u...
  • fly9006
  • fly9006
  • 2017年02月19日 21:13
  • 364

java设计模式 实验一-简单工厂模式

**简单工厂模式** 班级:软件工程1班 姓名:张雨 学号:2014416558 一、实验目的: 简单工厂设计模式应用 二、实验内容: 题目(一): 使用简单工厂模式模拟女娲(N...
  • a1120575649
  • a1120575649
  • 2016年09月23日 23:20
  • 783

设计模式之面向对象七大基本原则

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!概述在运用面向对象的思想进行软件设计时,需要遵循的原则一共有7个,他...
  • yanbober
  • yanbober
  • 2015年04月27日 16:25
  • 6348
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式之简单工厂模式
举报原因:
原因补充:

(最多只允许输入30个字)