前言
最近考完设计模式,感觉这个挺简单的,应该是策略模式
目录
1.UserDao接口
2.UserDaoImpl实现类
3.UserService业务接口
4.UserServiceImpl业务实现类
代码
UserDao
package com.dao;
public interface UserDao {
void getUser();
}
UserDaoImpl
package com.dao;
public class UserDaoImpl implements UserDao{
public void getUser(){
System.out.println("默认获取用户的数据");
}
}
UserDaoMysqlImpl
package com.dao;
public class UserDaoMysqlImpl implements UserDao{
public void getUser() {
System.out.println("Mysql获取用户数据!");
}
}
UserService
package com.service;
import com.dao.UserDao;
public interface UserService {
void getUser();
void setUserDao(UserDao userDao);
}
UserServiceImpl
package com.service;
import com.dao.UserDao;
public class UserServiceImpl implements UserService{
private UserDao userDao;
//利用set进行动态实现值得注入
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void getUser() {
userDao.getUser();
}
}
MyTest
import com.dao.UserDaoImpl;
import com.dao.UserDaoMysqlImpl;
import com.service.UserService;
import com.service.UserServiceImpl;
public class MyTest {
public static void main(String[] args) {
//用户实际调用的是业务层,dao层他们不需要接触!
UserService userService = new UserServiceImpl();
userService.setUserDao(new UserDaoMysqlImpl());
userService.getUser();
userService.setUserDao(new UserDaoImpl());
userService.getUser();
}
}
运行结果
总结
1.动态修改策略
2.决定权不在程序员手中,而是在用户手中