解耦:面向接口编程,利用多态,进行解耦
解耦有两种方式:
1.是创建工厂类进行解耦
建立一个工厂类用于读取配置文件。并在类中提供得到上述接口实例的方法,
//创建一个工厂类 ,用于读取配置文件的类
//是一个单例类
publicclass ObjectFactory {
private ObjectFactory(){}
privatestatic
ObjectFactory instance=new ObjectFactory();
publicstatic ObjectFactory getInstance()
{
returninstance;
}
//要读取的dao.properties文件的内容是
StudentByDao=cn.itcast.dao.StudentDao
//读取配置文件的方法,得到StudentDao的事例
public StudentDao getStudentDao()
throws Exception
{
//ResourceBundle的对象用于读取.properties类型的配置文件
ResourceBundle bundle = ResourceBundle.getBundle("dao");
//得到配置文件中的值
String value = bundle.getString("StudentByDao");
//利用反射技术创建实例对象
StudentDao sd
= (StudentDao) Class.forName(value).newInstance();
return sd;
}
}
4,所以在程序中想得到实现接口的子类对象时,就可以利用多态和工厂类去得到。
StudentDao dao
= ObjectFactory.getInstance().getStudentDao();
2.是使用spring