@Spring5 IOC 思想推导

@Spring5 IOC 思想推导

IOC (控制翻转)
把程序的控制权交给用户

具体例子及简单实现IOC:

现在项目中有,UserService,UserImpl,以及UserDao,UserDaoImp

//接口
		interface UserDao
		{
			void insert(User user)
		}
//-----------------------------------------
		interface UserService
		{
			private UserServiceImpl userServiceImpl;
			 pubilc void addUser(User user);
		}
//-----------------------------------------
//实现类
		class UserDaoImp implement UserDao
		{
			void insert(User user)
			{
				sout("添加成功");
			}
		}
//-----------------------------------------
		class UserServiceImpl implement UserService
		{
			private UserDaoImpl userDaoImpl = new UserDaoImpl();
			 pubilc void addUser(User user)
			 {
			 	
				userDaoImpl.insert(user)
				}
			 
		}
此时领导修改了需求,需要用户的更多功能,如何进行功能扩充。
添加了一个新的UserNewDaoImp;
		class UserNewDaoImp implement UserDao
		{
			void insert(User user)
			{
				sout("添加或者更新成功");
			}
		}

我还需要改写UserServiceImp

private UserServiceImpl userServiceImpl;
//改写为
private UserNewDaoImp userNewDaoImp;

如果是在大项目中,这样一个功能的修改或扩展可能要面临非常大修改工作量,

这时,如果我们把UserServiceImp改为

class UserServiceImpl implement UserService
		{
			//这里改为接口来接收对象
			private UserDao userDao; 
			//添加一个set方法
			public void setUserDao(UserDao userDao)
			{
				this.userDao = userDao;
			}
			 pubilc void addUser(User user)
			 {
			 	
				userDaoImpl.insert(user)
			}
			 
		}

这样就可以实现了在开发过程的功能扩展任意选择,
把实际调用对象交由用户来选择或操作,这是IOC思想的雏形。
在spring中实现控制翻转的是IOC容器 ,具体的实现方式是通过依赖注入,用户可以通过修改配置文件实现对程序的控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值