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