• <xmp id="4g4m2"><menu id="4g4m2"></menu><menu id="4g4m2"><strong id="4g4m2"></strong></menu>
    <xmp id="4g4m2">
  • <menu id="4g4m2"></menu>
  • <dd id="4g4m2"></dd>
  • 只發布交易干貨的網站
    用實戰期貨交易系統和心得助你重塑交易認知

    正規期貨開戶 | 手續費只+1分

    90%交易者的手續費都被加收超1倍,一起看看最新的交易所手續費一覽表吧!

    ioc是什么意思(ioc本質基礎解析)

    IoC基礎

    新建一個空白的maven項目

    分析完成

    我們先用我們原來的方式寫一段代碼 .

    1. 先寫一個UserDao接口

    publicinterfaceUserDao{publicvoidgetUser();}

    2. 再去寫Dao的完成類

    publicclassUserDaoImplimplementsUserDao{@OverridepublicvoidgetUser(){System.out.println("獲取用戶數據");}}

    3. 然后去寫UserService的接口

    publicinterfaceUserService{publicvoidgetUser();}

    4. 最后寫Service的完成類

    publicclassUserServiceImplimplementsUserService{privateUserDaouserDao=newUserDaoImpl();@OverridepublicvoidgetUser(){userDao.getUser();}}

    5. 測試一下

    @Testpublicvoidtest(){UserServiceservice=newUserServiceImpl();service.getUser();}

    這是我們原來的方式 , 開始大家也都是這么去寫的對吧 . 那我們現在修改一下 .

    把Userdao的完成類增加一個 .

    publicclassUserDaoMySqlImplimplementsUserDao{@OverridepublicvoidgetUser(){System.out.println("MySql獲取用戶數據");}}

    緊接著我們要去運用MySql的話 , 我們就需要去service完成類里面修改對應的完成 .

    ioc是什么意思(ioc本質基礎解析)

    publicclassUserServiceImplimplementsUserService{privateUserDaouserDao=newUserDaoMySqlImpl();@OverridepublicvoidgetUser(){userDao.getUser();}}

    在假設, 我們再增加一個Userdao的完成類 .

    publicclassUserDaoOracleImplimplementsUserDao{@OverridepublicvoidgetUser(){System.out.println("Oracle獲取用戶數據");}}

    那么我們要運用Oracle , 又需要去service完成類里面修改對應的完成 . 假設我們的這種需求十分大 , 這種 方式就根本不實用了, 以至反人類對吧 , 每次變動 , 都需要修改大量代碼 . 這種設想的耦合性太高了, 牽一 發而動全身

    那我們如何去解決呢 ?

    我們可以在需要用到他的地方 , 不去完成它 , 而是留出一個接口 , 利用set , 我們去代碼里修改下 .

    publicclassUserServiceImplimplementsUserService{privateUserDaouserDao;//利用set完成publicvoidsetUserDao(UserDaouserDao){this.userDao=userDao;}@OverridepublicvoidgetUser(){userDao.getUser();}}

    現在去我們的測試類里 , 進行測試 ;

    @Testpublicvoidtest(){UserServiceImplservice=newUserServiceImpl();service.setUserDao(newUserDaoMySqlImpl());service.getUser();//那我們現在又想用Oracle去完成呢service.setUserDao(newUserDaoOracleImpl());service.getUser();}

    大家發現了區別沒有 ? 可能許多人說沒啥區別 . 但是同學們 , 他們已經發生了根本性的變化 , 許多地方都 不一樣了 . 細心去思索一下 , 以前所有東西都是由程序去進行控制創建 , 而現在是由我們自行控制創建對 象 , 把主動權交給了調用者 . 程序不用去管怎么創建,怎么完成了 . 它只負責提供一個接口 . 這種思想 , 從實質上解決了問題 , 我們程序員不再去治理對象的創建了 , 更多的去關注業務的完成 . 耦合 性大大升高 . 這也就是IOC的原型 !

    IOC實質

    控制反轉IoC(Inversion of Control),是一種設想思想,DI(依靠注入)是完成IoC的一種辦法,也有人認 為DI只是IoC的另一種說法。沒有IoC的程序中 , 我們運用面向對象編程 , 對象的創建與對象間的依靠關系 完全硬編碼在程序中,對象的創建由程序自己控制,控制反轉后將對象的創建轉移給第三方,個人認為 所謂控制反轉就是:獲得依靠對象的方式反轉了。

    IoC是Spring框架的核心內容,運用多種方式完美的完成了IoC,可以運用XML配置,也可以運用注解, 新版本的Spring也可以零配置完成IoC。

    Spring容器在初始化時先讀取配置文件,根據配置文件或元數據創建與組織對象存入容器中,程序運用 時再從Ioc容器中取出需要的對象。

    采用XML方式配置Bean的時分,Bean的定義信息是和完成分離的,而采用注解的方式可以把兩者合為 一體,Bean的定義信息直接以注解的形式定義在完成類中,從而達到了零配置的目的。

    控制反轉是一種通過描述(XML或注解)并通過第三方去消費或獲取特定對象的方式。在Spring中完成 控制反轉的是IoC容器,其完成辦法是依靠注入(Dependency Injection,DI)。

    本文名稱:《ioc是什么意思(ioc本質基礎解析)》
    本文鏈接:http://www.wuhansb.com/baike/240807.html
    免責聲明:投資有風險!入市需謹慎!本站內容均由用戶自發貢獻,或整編自互聯網,或AI編輯完成,因此對于內容真實性不能作任何類型的保證!請自行判斷內容真假!但是如您發現有涉嫌:抄襲侵權、違法違規、疑似詐騙、虛假不良等內容,請通過底部“聯系&建議”通道,及時與本站聯系,本站始終秉持積極配合態度處理各類問題,因此在收到郵件后,必會刪除相應內容!另外,如需做其他配合工作,如:設置相關詞匯屏蔽等,均可配合完成,以防止后續出現此類內容。生活不易,還請手下留情!由衷希望大家能多多理解,在此先謝過大家了~

    我要說說 搶沙發

    評論前必須登錄!

    立即登錄   注冊

    切換注冊

    登錄

    忘記密碼 ?

    切換登錄

    注冊

    我們將發送一封驗證郵件至你的郵箱, 請正確填寫以完成賬號注冊和激活

    簧色带三级