第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

騎士傳奇(上)--Spring的IOC和AOP

標簽:
Java JavaScript

这是一个非常老套的骑士冒险故事

骑士出世

伟大的人物出生时,都会伴随天地异象,我们的骑士也不例外,骑士出生时,天地间代码纷飞。

package com.knightlegend.spring;

public class Knight {
    //骑士出生就是为了营救公主
    private RescueMission RescueMission;
    public Knight() {
        //紧耦合
        this.RescueMission = new RescueMission();
    }
}
package com.knightlegend.spring;

public class RescueMission {
}

好的,就这样我们的白板骑士号就创建好了。

新手任务

王国的公主被恶龙抓走了,我们骑士的使命来临了,就在骑士准备出发营救公主之际,邻居家大妈的鸡丢了,拜托我们的骑士帮她找回她丢失的母鸡,这,这简直是so easy,骑士满口答应下来,打开自己的技能面板...

紧急修复...

package com.knightlegend.spring;

public class CatchChicks {
    // 技能 捉小鸡...
}
package com.knightlegend.spring;

//骑士面板
public class Knight {
    //骑士出生就是为了营救公主
    private RescueMission RescueMission;
    // 紧急修复,添加捉小鸡技能
    private CatchChicks catchChicks;
    public Knight() {
        //紧耦合
        this.RescueMission = new RescueMission();
        this.catchChicks = new CatchChicks();
    }
}

修复完成...(以后不能让骑士去接这种掉身价任务了)

哈哈,我们的骑士果然是无所不能的,天生自带捉小鸡技能...
使用技能捉小鸡...
捕获邻居家母鸡一只...(不要在意这些细节)
bingo,任务完成...

新手任务二

隔壁的老奶奶缓缓的走向骑士,我家的小孙子一天都没回来了,你能帮我找找看吗?
这个,这个..
紧急修复,紧急修复...
骑士天赋技能升级

package com.knightlegend.spring;

public interface Quest {
    // 骑士天赋:搞事情
    // 效果:心想事成
}
package com.knightlegend.spring;

//骑士面板
public class Knight {
    //我们的骑士是个挂比
    private Quest quest;
    public Knight(Quest quest) {
        //quest 被注入进来,构造器注入
        this.quest = quest;
        //Quest 搞事情接口,骑士不与具体事情的实现 发生耦合,
        //只实现搞事情接口,这就是依赖注入(DI)的最大收益:松耦合
    }
}
package com.knightlegend.spring;
//骑士技能
public class FindGrandchildren implements Quest{
    //骑士技能三:找小孙子
}

package com.knightlegend.spring;
//骑士技能
public class CatchChicks implements Quest{
    // 骑士技能二:捉小鸡...
}

package com.knightlegend.spring;
//骑士技能
public class RescueMission implements Quest{
    //骑士技能一:救公主
    //...
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">

    <bean id="knight" class="com.knightlegend.spring.Knight">
        <constructor-arg ref="quest"/>
    </bean>
    <!-- 将救公主技能装配给骑士 -->
    <bean id="quest" class="com.knightlegend.spring.RescueMission">
    </bean>
    <!--... 略-->
</beans>

修复说明:通过构造器注入,将搞事情接口注入进入骑士面板,实现了骑士面板与技能的松耦合,这样骑士每次接受到新的任务时,就不用修改骑士面板代码,只需新增相对应的任务技能,装配给骑士即可。
这就是 Spring 的 IOC(Inversion of Control-IOC),控制反转,通过依赖注入(DI)实现,容器负责创建对象和维护对象之间的依赖关系,帮助应用对象之间保持松散耦合。
可与之前实现方法作对比。
bingo,修复完成(以后任何任务来了都不怕啦)
使用技能找孙子...
成功找到隔壁老奶奶孙子...
任务完成。

新的征程

终于完成了新手任务,我们的骑士也将踏上新的征程

那就下期再会吧!

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消