zhuyx808 发表于 2013-2-3 11:15:52

读取配置文件(简单IOC)

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();
 }







}
页: [1]
查看完整版本: 读取配置文件(简单IOC)