六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 22|回复: 0

读取配置文件(简单IOC)

[复制链接]

升级  5.33%

14

主题

14

主题

14

主题

秀才

Rank: 2

积分
58
 楼主| 发表于 2013-2-3 11:15:52 | 显示全部楼层 |阅读模式
IDeviceWriter.java
package spring;
public interface IDeviceWriter {
        public void saveToDevice();
}


Business.java

package spring;
public class Business {
     private IDeviceWriter writer;

     public void setDeviceWriter(IDeviceWriter writer) {
             this.writer = writer;
     }
     public void save(){
            //...
           writer.saveToDevice();
      }
}







FloppyWriter.java
package spring;
public class FloppyWriter implements IDeviceWriter {
 @Override
 public void saveToDevice() {
  // TODO Auto-generated method stub
  //实际存储代码
  System.out.print("A盘存储");
 }





}
UsbDiskWriter.java

package spring;
public class UsbDiskWriter implements IDeviceWriter {
 @Override
 public void saveToDevice() {
  // TODO Auto-generated method stub
  //实际存储代码
  System.out.print("U盘存储");
 }





}
BusinessFactory.java

package spring;
import java.io.FileInputStream;
import java.util.Properties;

public class BusinessFactory {
 private static BusinessFactory factory;
 private Properties props;
 private Business business;
 private IDeviceWriter writer;
 private BusinessFactory()throws Exception{
  props=new Properties();
  props.load(new FileInputStream("config.properties"));
  String businessClass=props.getProperty("business.class");
  String writerClass=props.getProperty("writer.class");
  business=(Business)Class.forName(businessClass).newInstance();
  writer=(IDeviceWriter)Class.forName(writerClass).newInstance();
  business.setDeviceWriter(writer);
 }
 public static BusinessFactory getInstance()throws Exception{
  if(factory==null){
   factory=new BusinessFactory();
  }
  return factory;
 }
 public Business getBusiness(){
  return business;
 }
 public IDeviceWriter getWriter(){
  return writer;
 }
}


























config.properties

business.class=spring.Business
writer.class=spring.UsbDiskWriter

Test.java
package test;
import spring.Business;
import spring.BusinessFactory;

public class Test {
 /**
  * @param args
  */
 public static void main(String[] args) throws Exception{
  // TODO Auto-generated method stub
  Business business=BusinessFactory.getInstance().getBusiness();
  business.save();
 }







}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表