JDBC学习之路(六)--基于Properties配置文件的工厂生产模式的低耦合实现
2011-10-09 21:59
579 查看
最近看JDBC的时候,最后讲到了降低代码耦合度,在没有Spring的时候,还是使用Properties配置文件进行简单的配置,实现以后数据库访问层的稳定不需要再次修改,我写了一个简单的HelloWorld说明了工厂生产模式,领会精神,下面将代码贴上,
首先是配置文件,他的名字为confige.properties,内容如下
下面是工厂类
下面是实现接口类
下面是接口真正的使用类
下面我们分析代码
1.在use接口实用类中,你看不到这个类口的实现类的名字,这也
就说明,他不依靠实现类的名字,从而实现代码的低耦合度
2.再说工厂类,他的两个static不能颠倒的原因是,当虚拟机加载
静态常量的时候,先加载Hello常量然后执行构造函数初始化,给
他赋一个新的值才能有用,否则他的值会被抹掉成为NULL,详情
参考我的类成为对象的过程分析
3.加载配置文件的过程是通过Path路径实现,这样只要你的配置文
件在Path能找到的范围他就能加载,真正实现低耦合度,看完这
些我兴奋了,设计模式很牛!!!!!!!
首先是配置文件,他的名字为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能找到的范围他就能加载,真正实现低耦合度,看完这
些我兴奋了,设计模式很牛!!!!!!!
相关文章推荐
- 基于配置文件的工厂设计模式实现,并且做到对象的单例,类似于spring的ioc
- 使用配置文件配置工厂生产(工厂模式-base)
- [Java 15 反射机制 ] 工厂模式与 properties 读取配置文件
- (设计模式)简单工厂模式之通过配置文件动态创建实现类
- 在工厂模式中使用Properties配置文件出现java.lang.ExceptionInInitializerError的问题
- 基于Spring注解实现工厂模式
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【四】——实现模型工厂,依赖注入以及格式配置
- 基于生产-消费者模式的任务异步线程池设计与实现
- 转 [Struts2 权威指南.基于WebWork核心的MVC开发] struts.properties 配置文件
- 将properties文件的配置设置为整个Web应用的全局变量实现方法
- Spring Boot系列教程五:使用properties配置文件实现多环境配置
- WCF开发-使用证书文件配置基于自定义X509证书验证的消息安全模式
- Java基于Spring配置读取properties文件
- 基于单例模式的配置文件读取方法
- Python实现加载及解析properties配置文件的方法
- java使用dom4j解析xml配置文件实现抽象工厂反射示例
- Java:基于ORM技术的配置文件持久化实现
- Weblogic生产模式将用户名密码写入配置文件的方法(本人亲测,木有问题)
- linux内核配置文件.config,基于s3c2410实现
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【四】——实现模型工厂,依赖注入以及格式配置