Spring中的IOC能降低耦合性的理解

学到spring, 老师一定会讲: IOC能够降低耦合性,可是为啥会降低, 我的脑袋瓜子表示不李姐,呜呜呜~,这不吊我胃口吗hh😭😭

第一层 :传统方式

通常写Java程序都是通过实例化来获取对象,实例如下:

Dog dog = new Dog();
dog.woof();

注意:如果我们想把Dog换成其他的对象(例如 Cat cat = new Cat()), 换完之后, cat对象显然不一定存在woof方法,但它可能有 bark(), 那上面的程序基本要重写, 如果有10000处声明,10000调用, 今天肯定是搞不完了hh😭

第二层 : 接口

有的人肯定会说,我们约定一些公用的方法,大家去实现它,不就可以切换了吗?这就是接口

Animal animal = new Dog()
animal.bark();

注意: 如果现在我想把Dog换成Cat, 只需要将new Dog 换成 new Cat ,也就是说,如果有10000处类, 今晚加班或许就能搞定hh💪

接口能够一定程度上降低代码的耦合度

第三层 : 工厂模式

有的懒人,想为啥不能建一个既能生产Dog又能生产Cat对象的类,不就能提高效率吗?

class AnimalFactory{
	AnimalFactory(){}
	public static Animal getInstance(String type){
		Animal result = null;
		if("dog".equals(type)){
			result = new Dog();
		}
		if("cat".equals(type)){
			result = new Cat();
		}
		return result;
	}
}


Animal animal = AnimalFactory.getInstance("dog");
animal.bark();

注意: 这种方法把创建对象交给了专业的类,只要输入我需要的参数,就能返回给我正确的对象,但它并没有解决声明语句的修改,为了替换部分程序, 10000处,大概2~3个小时就能解决😍

第四层:反射

又有懒人说, 在写程序的时候不告诉工厂需要什么,等到运行的时候再告诉工厂需要什么不就行了吗?

Animal animal = AnimalFactory.getInstance(去config中读取想要的);
animal.bark();

想要的 = dog

这样,工厂生产什么全部写在一个文件里,只需要利用反射,运行的时候生产想应得东西即可。

如果想修改想要得,只需修改配置文件里的想要的即可,很快的。另外除了配置文件,其他基本没有修改,意味着代码不需要重新编译

总结

第四层就是IOC在做的事情
IOC = 工厂模式+反射+配置文件读取(xml)

这里得工厂模式并不是真的生产对象,而是取出对象而已
所有的JavaBean都被IOC的工厂管理,需要的时候就和工厂说一声,需要XXX就可以了,这样工厂就会返回给你一个正确的对象.在不需要的时候修改工厂的生产列表(配置文件),工厂就停止生产该JavaBean了.

原文链接:https://blog.csdn.net/tinpo_123/article/details/108718367

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值