JDBC学习之路(六)--基于Properties配置文件的工厂生产模式的低耦合实现

本文介绍了如何通过配置文件和工厂模式实现数据库访问层的低耦合度,使得代码在无需修改的情况下保持稳定。具体包括配置文件的使用、工厂类的构造和工作原理,以及接口、其实现类和接口使用类的详细实现。

最近看JDBC的时候,最后讲到了降低代码耦合度,在没有Spring的时候,还是使用Properties配置文件进行简单的配置,实现以后数据库访问层的稳定不需要再次修改,我写了一个简单的HelloWorld说明了工厂生产模式,领会精神,下面将代码贴上,

首先是配置文件,他的名字为confige.properties,内容如下

HelloClass=com.bird.node.HelloImpl

下面是工厂类

package com.bird.node;

import java.io.InputStream;
import java.util.Properties;

public class HelloFactory {
	private static Hello hello = null;//注意,这两个static值的顺序一定不能变换,下面将会解释
	private static HelloFactory factory = new HelloFactory();
	
	private HelloFactory(){
		try{
			Properties properties = new Properties();//下面这种装载方式只要在Path路径里面就能装载文件
			InputStream inputStream = HelloFactory.class.getClassLoader().getResourceAsStream("confige.properties");
			properties.load(inputStream);
			String HelloImplName = properties.getProperty("HelloClass");
			hello =(Hello)Class.forName(HelloImplName).newInstance();//类加载如虚拟机后实例化
		}catch(Exception e){
			throw new ExceptionInInitializerError(e);//抛出初始化错误,比较严重的错误
		}
	}
	
	public static HelloFactory getInstance(){
		return factory;
	}
	
	public Hello getHelloImpl(){
		return hello;
	}
}
下面是接口

package com.bird.node;

/**
 * @use 定义一个接口
 * @author Bird
 *
 */
public interface Hello {
	public void say();
}

下面是实现接口类

package com.bird.node;

/**
 * @use 实现Hello接口
 * @author Bird
 *
 */
public class HelloImpl implements Hello{
	public void say(){
		System.out.println("Hello Properties!!!");
	}

	
}

下面是接口真正的使用类

package com.bird.node;

/**
 * @use 使用接口的实现类
 * @author Bird
 *
 */
public class HelloUse {
	public void use(){
		Hello hello = HelloFactory.getInstance().getHelloImpl();
		hello.say();
	}
	
	public static void main(String[] args){
		HelloUse use = new HelloUse();
		use.use();
	}
}

下面我们分析代码

1.在use接口实用类中,你看不到这个类口的实现类的名字,这也


就说明,他不依靠实现类的名字,从而实现代码的低耦合度



2.再说工厂类,他的两个static不能颠倒的原因是,当虚拟机加载


静态常量的时候,先加载Hello常量然后执行构造函数初始化,给


他赋一个新的值才能有用,否则他的值会被抹掉成为NULL,详情


参考我的类成为对象的过程分析



3.加载配置文件的过程是通过Path路径实现,这样只要你的配置文


件在Path能找到的范围他就能加载,真正实现低耦合度,看完这


些我兴奋了,设计模式很牛!!!!!!!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值