设计模式之简单工厂模式

简单工厂模式

简单工厂:使用工厂封装对象的创建过程,封装的对象应具备相同的行为。

步骤:

  1. 定义接口规范:此接口是工厂中创建出的对象必须实现的接口,而且创建出的对象必须实现接口中提供的方法。
  2. 定义实现类:是工厂需要创建的对象的模板,实现类要实现定义的接口。
  3. 构建工厂:工厂类是抽象类,工厂类中提供一个静态的方法,方法的返回值类型是接口类型,用于动态绑定工厂中产生的各种对象。

应用场景:根据用户的需求而产生不同的对象,而这些对象都是同一类型,而且都具有相同的行为。

作用:能够适应不同用户提出不同的需求,根据不同的需求产生不同的对象,同时屏蔽对象的创建过程。

简单工厂实例:

接口:

package com.csdn.biz;

public interface UserBiz {
	public boolean login(String username,String password);
}

接口实现类:

package com.csdn.biz.impl;

import com.csdn.biz.UserBiz;

public class UserBizImpl implements UserBiz {

	public boolean login(String username, String password) {
		//此处省略逻辑处理
		return false;
	}

}

构建工厂:

package com.csdn.factory;

import com.csdn.biz.UserBiz;
import com.csdn.biz.impl.UserBizImpl;

/**
 * SimpleFactory:简单工厂
 * @author Gansuper
 * @time 2014年5月11日
 */
public abstract class SimpleFactory {
	public static UserBiz getUserBizImpl(String message){
		if("UserBizImpl".equals(message)){
			return new UserBizImpl();
		}
		return null;
	}
}

简单工厂与配置文件结合使用实例:

接口及接口实现类与上面一致。

创建配置文件factory.properties并书写响应的配置信息。

UserDaoImpl = com.hncu.dao.impl.UserDaoImpl
UserBizImpl = com.hncu.biz.impl.UserBizImpl

工厂类:

package com.hncu.factory;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * Faction:工厂类,用于读取配置文件信息实例化对象
 * @author Gansuper
 * @time 2014年5月11日
 * */
public class Factory {
	//创建一个Properties对象
	private static Properties prop = new Properties();
	//静态块
	static {
		//获得配置文件信息
		InputStream io = Factory.class.getResourceAsStream("factory.properties");
		try {
			//加载配置信息
			prop.load(io);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	/**
	 * @功能:获得实例对象
	 * @param key 
	 * @return Object 创建的对象
	 * */
	public static Object getInstance(String key) {
		//获得配置文件中key对应的配置信息
		String className = prop.getProperty(key).trim();
		Object obj=null;
		try {
			//通过反射获得类对象
			Class<?> c=Class.forName(className);
			//实例化对象
			obj=c.newInstance();
		} catch (Exception e) {
			e.printStackTrace();
		}
		//返回获得对象实例
		return obj;
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值