设计模式之简单工厂模式

原创 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是客户端与被隔离体之间的唯一桥梁。

设计模式之简单工厂模式

  • 2014年08月17日 14:51
  • 33KB
  • 下载

设计模式之简单工厂模式(SimpleFactory)

设计模式主要原则: 单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会...

设计模式之简单工厂模式

  • 2014年04月23日 11:23
  • 29KB
  • 下载

大话设计模式-简单工厂模式(学习笔记与java实现)

java学习了一段时间,对面向对象有一定的理解,但是总觉得理解不深,这几天开始看设计模式,用的是程杰的大话设计模式,但是书里的源码是C#的,自己用java来实现,也加深了java的学习。 1、简单工...

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

  • 2013年08月10日 15:54
  • 6KB
  • 下载

设计模式之简单工厂模式案例

  • 2017年07月09日 13:19
  • 12KB
  • 下载

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

问题描述之前在公司做了一个windows 8平台的阅读器。首先,需要将电子书中的内容渲染到屏幕上,而电子书每一页都包含各种各样的内容,比如:图形、图像和文字等等;不同的内容,就是不同的对象;在将不同的...

设计模式_简单工厂模式

  • 2012年10月15日 16:28
  • 23KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式之简单工厂模式
举报原因:
原因补充:

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