框架反转
框架简单反转
package dao;
public interface UserDao {
public void getUser();
}
package dao;
public class UserDaoImpl implements UserDao {
@Override
public void getUser() {
System.out.println("获取用户数据");
}
}
package dao;
public class UserDaoMysqlImpl implements UserDao {
// private UserDao userDao=new UserDaoImpl()
@Override
public void getUser() {
System.out.println("mqsql获取用户数据");
}
}
package dao;
public class UserDaoOrecleImpl implements UserDao {
@Override
public void getUser() {
System.out.println("Orecle获取用户数据");
}
}
package service;
public interface UserService {
public void getUser();
}
package service;
import dao.UserDao;
import dao.UserDaoImpl;
import dao.UserDaoMysqlImpl;
import dao.UserDaoOrecleImpl;
public class UserServiceImpl implements UserService{
private UserDao userDao;
//利用set实现接口,不用创建那么多类
public void setUserDao(UserDao userDao){
this.userDao=userDao;
}
@Override
public void getUser() {
userDao.getUser();
}
}
import dao.UserDaoImpl;
import dao.UserDaoMysqlImpl;
import dao.UserDaoOrecleImpl;
import org.junit.Test;
import service.UserService;
import service.UserServiceImpl;
public class UserTest {
@Test
public void test(){
UserServiceImpl service=new UserServiceImpl();
service.setUserDao(new UserDaoMysqlImpl());
service.getUser();
service.setUserDao(new UserDaoOrecleImpl());
service.getUser();
service.setUserDao(new UserDaoImpl());
service.getUser();
}
}