丝袜人妻一区二区三区_少妇福利无码视频_亚洲理论片在线观看_一级毛片国产A级片

當(dāng)前位置:首頁 > 話題廣場(chǎng) > 攻略專題 > 游戲問答

如何初始化接口?總結(jié)很全面速看!小技巧:使用對(duì)象機(jī)制實(shí)現(xiàn)組件初始化及銷毀

問題

最近重新配置代碼時(shí)發(fā)現(xiàn),在特殊情況下,組件的破壞界面由于程序的異常而無法調(diào)用。這不是什么大問題(整個(gè)程序不正常,進(jìn)程退出是即將發(fā)生的事),但對(duì)于有一點(diǎn)完美主義的我來說,這確實(shí)降低了程序的異常安全性。(阿爾伯特愛因斯坦,《美國(guó)電視劇》,節(jié)目、節(jié)目、節(jié)目、節(jié)目、節(jié)目、節(jié)目、節(jié)目、節(jié)目)

解決方法

我們先來看下面一張圖,它描述了程序改造之前的交互場(chǎng)景:

在上圖中,我們?cè)贑WinApp對(duì)象的InitInstance中調(diào)用了組件的Init接口初始化組件,然后,如果程序正常退出,CWinApp對(duì)象的ExitInstance會(huì)被調(diào)用,我們?cè)谠摲椒ㄖ姓{(diào)用組件銷毀接口Exit,這樣的成對(duì)調(diào)用方式,確保組件內(nèi)部資源的正常初始化和釋放。

但是,如果因?yàn)槌绦虻腂ug,導(dǎo)致正常的程序流沒有走到ExitInstance,則組件的Exit接口不會(huì)得到調(diào)用,從而發(fā)生資源泄漏。

將程序進(jìn)行一點(diǎn)改造,如下圖所示:

工作原理

在上圖的改造中,我們將組件的初始化和銷毀接口的調(diào)用封裝到一個(gè)全局對(duì)象的構(gòu)造和析構(gòu)方法中,實(shí)現(xiàn)組件在程序?qū)嵗龁?dòng)時(shí)的自動(dòng)調(diào)用。對(duì)象的構(gòu)造析構(gòu)機(jī)制,也確保了組件的銷毀接口會(huì)得到正常調(diào)用。

另外這樣做的好處是,你不用擔(dān)心程序的其他部分使用組件功能時(shí),組件還沒有初始化,因?yàn)槲覀兊腃omponentLauncher全局對(duì)象,就像CWinApp全局對(duì)象一樣,它的構(gòu)造函數(shù)將早于程序的main入口點(diǎn),所以,我們確保了組件的初始化調(diào)用。

對(duì)于組件銷毀,也是一樣。程序的其他代碼在接近程序退出的時(shí)間點(diǎn)的時(shí)候,依然可能會(huì)調(diào)用組件的業(yè)務(wù)功能,這個(gè)時(shí)候,你也無需擔(dān)心組件被過早的銷毀了,因?yàn)槿謱?duì)象的析構(gòu)位于程序的main入口點(diǎn)之后。

總結(jié)

1) 使用這個(gè)方法,我們需要定義一個(gè)簡(jiǎn)單的ComponentLauncher對(duì)象,其構(gòu)造函數(shù)調(diào)用組件初始化接口,析構(gòu)函數(shù)調(diào)用組件的銷毀接口。實(shí)現(xiàn)自動(dòng)化的成對(duì)調(diào)用。

2) 需要定義一個(gè)全局ComponentLauncher對(duì)象,就像CWinApp對(duì)象一樣。

3) 這個(gè)方法的缺點(diǎn):如果組件是一個(gè)大型工程,其初始化或銷毀過程十分耗時(shí),則從用戶體驗(yàn)上來說:這個(gè)程序啟動(dòng)或退出比較慢。這個(gè)就需要開發(fā)者對(duì)程序健壯性和用戶體驗(yàn)進(jìn)行權(quán)衡了。

我的建議是:用戶喜愛的程序,才是一個(gè)好程序。

1.《如何初始化接口?總結(jié)很全面速看!小技巧:使用對(duì)象機(jī)制實(shí)現(xiàn)組件初始化及銷毀》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請(qǐng)聯(lián)系頁腳下方聯(lián)系方式。

2.《如何初始化接口?總結(jié)很全面速看!小技巧:使用對(duì)象機(jī)制實(shí)現(xiàn)組件初始化及銷毀》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來源地址,http://f99ss.com/gl/2107080.html

上一篇

0123456789叫什么鍵?總結(jié)很全面速看!查分|最細(xì)致的成績(jī)查詢攻略拿走不謝

下一篇

07版word如何插入批注看這里!Word 如何添加和修改批注?

關(guān)于如何初始化接口,你需要知道這些Spring容器是怎么初始化的

關(guān)于如何初始化接口,你需要知道這些Spring容器是怎么初始化的

如何初始化接口相關(guān)介紹,彈簧容器是如何初始化的? 原創(chuàng)宣言 本人不支持簽署原創(chuàng)文章未經(jīng)許可轉(zhuǎn)載。 本公眾號(hào)所有文章均原創(chuàng),為了容易理解和記憶,文章以圖解為主、代碼為輔。如果您感興趣,歡迎關(guān)注! 文/吳瀟(Java Senio...

如何初始化接口?總結(jié)很全面速看!BIOS的初始化和引導(dǎo)加載程序

如何初始化接口?總結(jié)很全面速看!BIOS的初始化和引導(dǎo)加載程序

如何初始化接口相關(guān)介紹,BIOS是基本輸入/輸出系統(tǒng)(Basic Input/Output System)的縮寫,是硬件和軟件之間的接口,是非常基本的接口。 BIOS提供了一組基本的操作系統(tǒng)使用的指令,系統(tǒng)啟動(dòng)的成功與否依賴...

關(guān)于如何初始化接口,你需要知道這些MCU性能測(cè)試,CoreMark極簡(jiǎn)入門教程

關(guān)于如何初始化接口,你需要知道這些MCU性能測(cè)試,CoreMark極簡(jiǎn)入門教程

如何初始化接口相關(guān)介紹,MCU性能測(cè)試最著名的部分是CoreMark和Dhrystone。 CoreMark以每秒迭代為性能評(píng)估,而Dhrystone的DMIPS與Dhrystone標(biāo)準(zhǔn)有關(guān)。 本文討論CoreMark,先來...

如何初始化接口?終于找到答案了MyBatis初始化加載 Mapper 接口與XML文件

如何初始化接口?終于找到答案了MyBatis初始化加載 Mapper 接口與XML文件

如何初始化接口相關(guān)介紹,在MyBatis初始化過程中,大致有以下幾個(gè)步驟:分解所有IT類編制 創(chuàng)建Configuration全局配置對(duì)象時(shí),TypeAliasRegistry別名注冊(cè)中心將添加Mybatis所需的相關(guān)類,并將...

關(guān)于如何初始化接口,你需要知道這些無法初始化windows sockets接口

關(guān)于如何初始化接口,你需要知道這些無法初始化windows sockets接口

如何初始化接口相關(guān)介紹,請(qǐng)?jiān)囋囘@個(gè)方法。我也有這種情況?,F(xiàn)在用這個(gè)方法解決了??赡苁亲蛱斓淖詣?dòng)更新,可能出了問題,可能是單機(jī)。但是只要和互聯(lián)網(wǎng)接觸,就不能運(yùn)行。今天Vista和Win7好像大部分都中獎(jiǎng)了。(大衛(wèi)亞設(shè))。 應(yīng)該...

如何初始化接口看這里!什么是 COM 接口?

如何初始化接口看這里!什么是 COM 接口?

如何初始化接口相關(guān)介紹,如果你懂C#或Java語言,界面將是一個(gè)非常熟悉的概念。 接口是一個(gè)對(duì)象上一組操作的集合,不涉及任何實(shí)現(xiàn)的細(xì)節(jié),接口標(biāo)志著方法和實(shí)現(xiàn)的分離。計(jì)算機(jī)中這種現(xiàn)象叫做解耦(decoupled)。 在 C++...

關(guān)于如何初始化接口,你需要知道這些Spring Boot如何在啟動(dòng)時(shí)初始化資源?實(shí)現(xiàn)CommandLineRunner接口

關(guān)于如何初始化接口,你需要知道這些Spring Boot如何在啟動(dòng)時(shí)初始化資源?實(shí)現(xiàn)CommandLineRunner接口

如何初始化接口相關(guān)介紹,在實(shí)際工作中,項(xiàng)目啟動(dòng)時(shí)需要執(zhí)行初始化任務(wù)(如初始化數(shù)據(jù)庫連接、Redis緩存等)的要求。 今天就給大家介紹 CommandLineRunner接口,幫助大家解決項(xiàng)目啟動(dòng)初始化資源操作。 Comman...

關(guān)于如何初始化接口,你需要知道這些S7-300集成DP口之間GSD文件方式的DP主從通信(Step7)

關(guān)于如何初始化接口,你需要知道這些S7-300集成DP口之間GSD文件方式的DP主從通信(Step7)

如何初始化接口相關(guān)介紹,S7-300集成DP端口之間的GSD文件驅(qū)動(dòng)DP主從通信(Step7) PROFIBUS-DP是一種通信標(biāo)準(zhǔn),一些符合PROFIBUS-DP約定的第三方設(shè)備也可以作為SIMATIC master的從屬...