无论是ioc还是aop目的都是降低耦合,降低了耦合,以后对项目维护和升级就方便了。
ioc通过依赖注入和控制反转降低耦合。我们想要减低耦合,就要减少类与类之间的依赖,也就是尽量不在一个类中去new另一个类,尽量不要调用另一个类的方法。但是类与类之间的交流必须要去new对象才行,这时我们就像能不能创建一个工厂,让这个工厂代替我们去创建对象,这样类与类之间的联系就减少了一些,也就降低了耦合。那么为什么用工厂替我们创建对象就降低耦合了呢?因为如果我们以后对于一个类不满意想要修改,甚至想要替换他,那么我们就只用在工厂里改一下代码就行了,就方便了。而我们将我所需的类,从工厂中获取过来的过程就叫依赖注入。类不能通过自身new对象,而只能通过工厂给对象,这就叫控制反转。
aop为什么降低了耦合呢?如果现在我是某牌电脑的定价商,现在我想根据地区的不同,我所卖的同一型号的电脑价格不同,比如我在美国卖4500元,我在日本卖4800元,我在中国卖5300元。这时我想写三个类帮我去在不同地区买电脑(在三个地区建三个厂房生产电脑),但这样就太麻烦了,如果我哪天想更换或升级电脑那就要分别在三个类里进行修改(通知这三个厂房进行相应的改变,比如生产线的调度,比如机器的更换等等)。但是这三个类是有相同的部分的(比如他们生产的电脑芯片相同,外壳材质相同,额...或许除了价格不同其他都相同),这时我们就把相同的部分提出来写一个类(比如在非洲建立一个大工厂生产电脑),在新建三个类(分别在三个地区建三个代理销售点),当我们在不同情况下执行这三个类中的一个(在不同地区卖的电脑的价格不一样),这样在对某个功能进行更改时就更方便了(比如我想升级产品,只需要在非洲工厂统一进行升级,而不像之前在三个工厂都进行更改)。