亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        設(shè)計模式在地面測發(fā)控軟件中的應(yīng)用

        2014-07-08 01:17:58馬衛(wèi)華馬穎勁解月江
        航天控制 2014年2期
        關(guān)鍵詞:功能

        楊 喆 馬衛(wèi)華 馬穎勁 解月江

        北京航天自動控制研究所,北京 100854

        設(shè)計模式在地面測發(fā)控軟件中的應(yīng)用

        楊 喆 馬衛(wèi)華 馬穎勁 解月江

        北京航天自動控制研究所,北京 100854

        如今導(dǎo)彈/火箭地面測發(fā)控軟件規(guī)模不斷擴(kuò)大,復(fù)雜度不斷增加,為了有效提高軟件研制效率,必須提升地面測發(fā)控軟件的復(fù)用性、可維護(hù)性和擴(kuò)展性。使用設(shè)計模式進(jìn)行軟件框架設(shè)計,能夠達(dá)到此目的。本文使用命令模式、單件模式、觀察者模式以及主動對象模式完成了地面測發(fā)控軟件部分功能框架的搭建,提高了軟件的非功能性需求。

        地面測發(fā)控軟件;軟件復(fù)用;設(shè)計模式

        導(dǎo)彈/火箭的地面測發(fā)控軟件是一個大型網(wǎng)絡(luò)軟件系統(tǒng),一般由主控軟件、顯示軟件以及數(shù)據(jù)處理軟件等多個應(yīng)用軟件組成,主要功能是實(shí)現(xiàn)測試發(fā)射控制流程的半自動和全自動測試,以及流程中所有數(shù)據(jù)的圖形化顯示,完成發(fā)射前的測試準(zhǔn)備[1]。

        近年來,各型號地面測發(fā)控軟件規(guī)模不斷擴(kuò)大,軟件產(chǎn)品復(fù)雜度不斷增加。為提升航天型號軟件研制效率,開發(fā)人員在完成軟件系統(tǒng)的功能需求之外,還必須提高軟件產(chǎn)品的可復(fù)用性、可維護(hù)性和擴(kuò)展性等非功能性要求。設(shè)計模式是面向?qū)ο筌浖O(shè)計經(jīng)驗的總結(jié),可以更加簡單方便地復(fù)用成功的設(shè)計和體系結(jié)構(gòu)。將設(shè)計模式的思想引入地面測發(fā)控軟件的設(shè)計過程,可以有效提高地面測發(fā)控軟件的可復(fù)用性、可維護(hù)性和擴(kuò)展性。

        本文討論了地面測發(fā)控軟件的特點(diǎn)和需求,分析了地面測發(fā)控軟件的通用架構(gòu)和主要組成模塊,并詳細(xì)論述了命令模式、單件模式、觀察者模式和主動對象模式在軟件設(shè)計中的應(yīng)用,總結(jié)了使用設(shè)計模式的優(yōu)勢,最終完成了地面測發(fā)控軟件測試流程控制與數(shù)據(jù)存盤功能的框架設(shè)計,說明了設(shè)計模式在地面測發(fā)控軟件中的應(yīng)用效果。

        1 設(shè)計模式簡介

        設(shè)計模式這個概念最早是由建筑大師Christopher Alexander提出的,他指出:“每一個模式描述了一個在我們周圍不斷重復(fù)發(fā)生的問題,以及該問題的解決方案的核心。這樣你就能一次又一次地使用該方案而不必做重復(fù)勞動[2]”。Alexander關(guān)于模式的說法僅針對城市和建筑,但他的思想也可以應(yīng)用在面向?qū)ο蟮脑O(shè)計模式里。設(shè)計模式提供了針對某個特定的面向?qū)ο筌浖栴}的解決方案,并提出了如何設(shè)計出高質(zhì)量軟件的好策略,可以簡單方便的復(fù)用成功的設(shè)計和體系結(jié)構(gòu),設(shè)計出更加靈活的、可復(fù)用和易維護(hù)的軟件系統(tǒng)。

        設(shè)計模式根據(jù)目的準(zhǔn)則可以劃分為創(chuàng)建型、結(jié)構(gòu)型和行為型3種。其中創(chuàng)建型模式主要負(fù)責(zé)對象的創(chuàng)建,它描述了怎樣構(gòu)造和封裝這些動態(tài)的決定,包含工廠模式、單件模式等;結(jié)構(gòu)型模式主要負(fù)責(zé)處理類或?qū)ο蟮慕M合,包含橋接模式、代理模式等;行為型模式則主要負(fù)責(zé)描述類或?qū)ο笕绾芜M(jìn)行交互以及如何分配職責(zé),包含命令模式、觀察者模式、主動對象模式等。

        不同的設(shè)計模式之間存在相互協(xié)作、相互依賴的關(guān)系。在實(shí)際的軟件系統(tǒng)設(shè)計過程中,需要合理安排多個設(shè)計模式進(jìn)行相互組合,形成一個完整的軟件框架。使用設(shè)計模式進(jìn)行軟件設(shè)計,可以降低軟件的耦合度,使軟件易于擴(kuò)展,達(dá)到優(yōu)化軟件內(nèi)部結(jié)構(gòu)的目的。

        2 地面測發(fā)控軟件需求分析

        圖1為地面測發(fā)控軟件通用結(jié)構(gòu)圖,由圖可知地面測發(fā)控軟件主要包括主控軟件、顯示軟件以及數(shù)據(jù)處理軟件等。

        主控軟件作為地面測發(fā)控系統(tǒng)的核心軟件,主要完成測試流程控制、數(shù)據(jù)通訊存儲等功能。為保證導(dǎo)彈/火箭在發(fā)射前功能正常、性能良好,保證安全、準(zhǔn)時發(fā)射,需要對導(dǎo)彈/火箭進(jìn)行全面、綜合的測試,評估導(dǎo)彈/火箭性能[3]。地面測發(fā)控軟件中主控軟件的測試流程控制功能即實(shí)現(xiàn)了導(dǎo)彈/火箭在發(fā)射前按預(yù)先設(shè)計好的時序進(jìn)行各項功能和性能的測試,比如:總線誤碼率檢查、系統(tǒng)配電自檢、彈上時序檢查等。測試流程按照功能及屬性歸類,可劃分為不同的流程類,稱之為主流程,每個主流程包含不同的流程項,稱為子流程,每個子流程包含不可分割的流程步驟,簡稱為步序。操作手可根據(jù)要求選擇相應(yīng)的主流程或子流程進(jìn)行系統(tǒng)測試。為驗證系統(tǒng)各項測試的有效性,需要存儲測試數(shù)據(jù),以便事后進(jìn)行數(shù)據(jù)分析。目前大部分型號主控軟件均可以監(jiān)聽彈上通訊數(shù)據(jù),并對數(shù)據(jù)進(jìn)行處理和分析,如存盤、轉(zhuǎn)發(fā)、提取消息、提取數(shù)據(jù)(伺服、電壓及時序)等不同的功能。數(shù)據(jù)存儲的運(yùn)行不能影響程序的正常功能及性能,因此數(shù)據(jù)存盤采用低優(yōu)先級的任務(wù)實(shí)現(xiàn)。

        顯示軟件主要負(fù)責(zé)顯示測試數(shù)據(jù),接收操作手按鍵輸入,是操作手和主控軟件之間的中介,實(shí)現(xiàn)了人機(jī)交互的功能;數(shù)據(jù)處理軟件主要完成測試數(shù)據(jù)的處理、判讀等功能。本文主要根據(jù)地面測發(fā)控軟件的測試流程控制和數(shù)據(jù)存儲的功能需求,討論設(shè)計模式在地面測發(fā)控軟件中的應(yīng)用。

        3 設(shè)計模式在地面測發(fā)控軟件中的應(yīng)用

        圖1 地面測發(fā)控軟件通用結(jié)構(gòu)圖

        設(shè)計模式的有效復(fù)用是當(dāng)前軟件領(lǐng)域研究的重要內(nèi)容,通過利用設(shè)計模式的思想來指導(dǎo)軟件結(jié)構(gòu)設(shè)計,不僅可以縮短軟件設(shè)計和實(shí)現(xiàn)的周期,還可以提高軟件的可維護(hù)性、可復(fù)用性。本文根據(jù)地面測發(fā)控軟件的需求,使用命令模式、單件模式、觀察者模式和主動對象模式解決地面測發(fā)控系統(tǒng)軟件所面臨的通用問題。

        3.1 命令模式在地面測發(fā)控軟件的應(yīng)用

        測試流程控制模塊負(fù)責(zé)對導(dǎo)彈/火箭發(fā)射前的各項功能進(jìn)行全面測試,操作手選擇某一流程項,系統(tǒng)將自動執(zhí)行其所有步序。步序參數(shù)確定了步序的具體功能,如何將步序參數(shù)賦給步序,其中最直觀的方法是,所有不同的步序共享同一類型的結(jié)構(gòu)體,步序的調(diào)用則在步序類中有步序執(zhí)行函數(shù),根據(jù)步序參數(shù)結(jié)構(gòu)體中的步序標(biāo)記調(diào)用不同的步序函數(shù),并以步序結(jié)構(gòu)體單元作為參數(shù)。但這種方法使某個步序可以訪問不需要的步序結(jié)構(gòu)體字段,不符合面向?qū)ο蟮姆庋b原則;步序函數(shù)所在類繼承自同一抽象類,擁有步序執(zhí)行函數(shù),每增加或刪除一個步序均要修改抽象類定義的步序執(zhí)行函數(shù),因此可擴(kuò)展性差。為解決以上問題,本文采用命令模式進(jìn)行程序設(shè)計。

        命令模式屬于對象行為型模式,命令模式將一個請求封裝為一個對象,并提供一致性發(fā)送請求的接口。當(dāng)一個事件發(fā)生時,它不直接把事件傳遞到事件調(diào)用者,而是在命令和調(diào)用者之間增加一個中間者,將這種直接關(guān)系切斷,同時兩者之間都隔離。事件調(diào)用者只是和接口打交道,不和具體實(shí)現(xiàn)交互。

        圖2 命令模式在地面測發(fā)控軟件的應(yīng)用類圖

        以主控軟件常用的延時功能為例,創(chuàng)建一個抽象的CFlowMethodCallBase類,該類包含1個公共接口call(),所有步序類均繼承自該抽象類。另外,創(chuàng)建CFlowMethodCallBase類的子類CMethodCallDelayTime,即步序類。該類包含1個call()方法,實(shí)現(xiàn)對CCtrlTime類的DelayTime()方法的引用,Delay-Time定義了具體的延時功能。

        步序的實(shí)現(xiàn)有了命令模式為基礎(chǔ),還要實(shí)現(xiàn)步序的管理和運(yùn)行。首先是注冊步序,在步序描述文件(XML)中保存步序的UUID號、名稱、參數(shù)個數(shù)、參數(shù)名稱和缺省值等信息,CMethodCallDelayTime類構(gòu)造函數(shù)執(zhí)行時將步序的UUID號通過哈希映射表與自身的指針關(guān)聯(lián)起來。最后是步序的執(zhí)行。通過步序創(chuàng)建器對象讀取XML文件,從中提取CMethod-CallDelayTime類的UUID,再通過哈希表找到該類的指針,并將指針存儲在數(shù)組中。由步序執(zhí)行器對象,獲取數(shù)組中的指針,即可調(diào)用相應(yīng)的call()函數(shù),實(shí)現(xiàn)對DelayTime步序的調(diào)用。

        步序執(zhí)行器對象運(yùn)行在自己獨(dú)立的任務(wù)(線程)中,當(dāng)主控軟件收到測試開始指令后,立即啟動該任務(wù),步序執(zhí)行器將逐項執(zhí)行XML文件中的步序,直到所有步序執(zhí)行完畢,或者收到暫停、停止指令。

        如圖2所示,在測試流程控制模塊中使用命令模式,并結(jié)合組合模式,能夠簡單快捷的進(jìn)行測試流程管理,增加或刪除某一步序,只需在CFlowMethod-CallBase父類下添加/刪除具體的步序子類,并將該步序在XML文件中注冊或刪除即可。使用命令模式,將調(diào)用者和被調(diào)用者分離,實(shí)現(xiàn)了功能之間的解耦,符合低耦合、高內(nèi)聚的思想,大大提高了軟件的可維護(hù)性和擴(kuò)展性。

        3.2 單件模式在地面測發(fā)控軟件的應(yīng)用

        地面測發(fā)控軟件的測試流程控制功能負(fù)責(zé)火箭/導(dǎo)彈射前各項功能和性能測試,測試項目達(dá)幾十到幾百個不等,按功能劃分為步序甚至更多。需要創(chuàng)建一個測試流程管理類(CFlowManage類)的實(shí)例,引用CFlowManage類的RegisterItem()方法完成步序的注冊。由于測試項目過多,每個步序類初始化都需要一個CFlowManage類的實(shí)例,增加了程序執(zhí)行的復(fù)雜度。本文采用單件模式解決此項問題。

        單件模式屬于創(chuàng)建型設(shè)計模式,它保證一個類僅有一個實(shí)例,并提供一個訪問它的全局訪問點(diǎn),客戶可以從一個眾所周知的訪問點(diǎn)訪問它。

        ACE(Adaptive Communication Environ-ment)技術(shù)提供了單件模式的模板類,封裝了單件模式的具體實(shí)現(xiàn)。使用ACE單件模式的模板創(chuàng)建CFlow-Manage類的一個指針 CFlowManageSingleton,代碼如下:

        Typedef ACE_Singleton〈 CFlowManage,ACE_SYNCH_MUTEX〉CFlowManageSingleton;

        CFlowManageSingleton指針只需通過Instance操作指向CFlowManage類的RegisterItem方法,即可完成步序的注冊。代碼如下:

        CFlowManageSingleton::instance()-〉RegisterItem("XXXX",static_cast〈CFlowMethodCallBase*〉(this));

        類似的,界面顯示功能也可以使用單件模式為界面顯示類創(chuàng)建唯一的實(shí)例,可以在任何一個訪問點(diǎn)訪問類實(shí)例,調(diào)用界面顯示類的方法,完成界面顯示功能,提高了代碼的靈活性。

        3.3 觀察者模式在地面測發(fā)控軟件的應(yīng)用

        目前各型號地面測發(fā)控軟件均可以監(jiān)聽彈上通訊數(shù)據(jù),并對數(shù)據(jù)進(jìn)行處理和分析。當(dāng)數(shù)據(jù)對象發(fā)生改變時,希望依賴于該數(shù)據(jù)對象的所有使用者都能立即被通知。本文采用觀察者設(shè)計模式描述這種依賴關(guān)系。

        觀察者設(shè)計模式定義了對象間一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新[2]。通過使用觀察者模式,系統(tǒng)可以獨(dú)立的改變目標(biāo)對象和觀察者對象,提高目標(biāo)對象和觀察者的復(fù)用性。

        圖3 觀察者模式在地面測發(fā)控軟件的應(yīng)用

        圖3為觀察者模式在地面測發(fā)控軟件應(yīng)用的結(jié)構(gòu)圖。對于被觀察者,首先定義一個抽象的Subject類作為目標(biāo)類,該類提供注冊和刪除觀察者的接口。Subject類還定義了svc任務(wù),該任務(wù)循環(huán)執(zhí)行調(diào)用UpdateAllObserver方法,UpdateAllObserver方法包含觀察者類Observer的一個引用,可將數(shù)據(jù)的變化通知給所有向其注冊的觀察者類。CRead1553BFrmUDP類作為Subject類的子類,是具體的目標(biāo)類,該類的ReadBuffer()主要負(fù)責(zé)從總線接收數(shù)據(jù),記錄數(shù)據(jù)狀態(tài)。對于觀察者,首先定義一個抽象的Observer接口,所有監(jiān)聽數(shù)據(jù)變化的觀察者均繼承自該抽象類,比如 SaveObserver類、AnalyseObserver類等,觀察者將自己注冊到目標(biāo)類對象中,目標(biāo)類將觀察者類存放在一個list容器里。Observer類的子類實(shí)例化各自的Update方法可實(shí)現(xiàn)實(shí)時更新,以正確反應(yīng)任務(wù)的執(zhí)行情況。

        觀察者模式降低了目標(biāo)與觀察者之間的耦合度。一個目標(biāo)僅知道它有一系列觀察者,而無需知道有多少個觀察者及其歸屬類,它唯一的責(zé)任是通過UpdateAllObserver函數(shù)通知向它注冊的各觀察者。通知被自動廣播給所有已向該目標(biāo)對象登記的有關(guān)對象。

        3.4 主動對象模式在地面測發(fā)控軟件的應(yīng)用

        數(shù)據(jù)存儲的運(yùn)行不能影響程序的正常功能及性能,在有的多任務(wù)操作系統(tǒng)中,低優(yōu)先級的任務(wù)會被高優(yōu)先級的任務(wù)中斷,因此為了保證其他重要任務(wù)的運(yùn)行,可以使用優(yōu)先級較低的任務(wù)實(shí)現(xiàn)數(shù)據(jù)存儲功能。本文采用主動對象設(shè)計模式,實(shí)現(xiàn)了以異步方式對數(shù)據(jù)存盤,為任務(wù)間的協(xié)作提供了解決方案。

        主動對象模式可以提供對象在自己的任務(wù)上下文中,采用看似常規(guī)的方法調(diào)用處于不同任務(wù)上下文對象的成員函數(shù),但該函數(shù)不是在發(fā)起者,而是在被調(diào)用對象的任務(wù)上下文中執(zhí)行。每個主動對象擁有私有的控制線程,用于執(zhí)行客戶在這個對象上調(diào)用的任何方法。當(dāng)對象的方法調(diào)用需要很長時間才能完成時,主動對象模式就會派上用場,它可以把主控線程解放出來去做其它事情[4-6]。當(dāng)主控軟件的數(shù)據(jù)接收和處理等關(guān)鍵任務(wù)有數(shù)據(jù)需要存儲在硬盤上時,采用主動對象模式提高關(guān)鍵任務(wù)的響應(yīng)速度。關(guān)鍵任務(wù)調(diào)用數(shù)據(jù)存儲功能后迅速返回并重新執(zhí)行關(guān)鍵操作,由低優(yōu)先級的數(shù)據(jù)存儲任務(wù)完成具體的存盤工作。簡而言之,就是由關(guān)鍵任務(wù)發(fā)起存盤動作,而具體存盤的動作由低優(yōu)先級的存盤任務(wù)完成。

        圖4 主動對象模式的應(yīng)用類圖

        數(shù)據(jù)存儲框架類圖如圖4所示。首先,定義一個方法請求類TFC_File_Savebin_Method類,該類繼承自ACE_Method_Request,它以對象的形式封裝了方法調(diào)用call()的對象,call()實(shí)現(xiàn)了數(shù)據(jù)存盤功能。方法請求對象是在主動對象的客戶向代理發(fā)出請求時創(chuàng)建的。然后,定義主動對象類Log_Task類。該類繼承自ACE_Task_Base,“持有”控制線程。主動對象類Log_Task需要重載svc()虛函數(shù),在其中指明主動對象需要執(zhí)行什么命令流程。一旦activate()函數(shù)被調(diào)用,ACE_Task_Base類會在svc()方法中啟動一個新的控制線程,在svc()中實(shí)現(xiàn)的流程將在主動對象擁有的線程中被執(zhí)行。另外,將Log_Task類的svc()寫成一個無限循環(huán)執(zhí)行模式,這個循環(huán)會不斷的處理命令消息。最后,定義一個代理者類Proxy_SaveFile,這個類是給客戶使用的,它聚合了TFC_File_Savebin_Method類和Log_Task類的實(shí)現(xiàn)。Proxy_SaveFile類定義了一個方法請求類TFC_File_Savebin_Method對象,并將其插入激活隊列enqueue()中。隊列中的請求對象會在Log_Task類的svc()方法中被執(zhí)行??蛻糁恍枵{(diào)用代理者類Proxy_SaveFile的一個引用,即可完成數(shù)據(jù)存盤功能的異步執(zhí)行。

        主動對象模式解除了方法調(diào)用和方法執(zhí)行之間的耦合,即前一個線程的調(diào)用(方法對象入隊列)和后一個線程的處理(方法對象出對列和call調(diào)用)解耦。對于數(shù)據(jù)存盤或日志存儲等優(yōu)先級較低的任務(wù),采用主動對象模式,可以實(shí)現(xiàn)異步存盤功能,使得系統(tǒng)的并發(fā)處理性能大幅提升。

        4 結(jié)束語

        結(jié)合地面測發(fā)控系統(tǒng)軟件的通用模型及其功能需求,詳細(xì)描述了命令模式、單件模式、觀察者模式和主動對象模式在地面測發(fā)控軟件設(shè)計開發(fā)中的應(yīng)用,解決了傳統(tǒng)軟件設(shè)計中存在的問題。并且,將這4種設(shè)計模式組合在一起,初步實(shí)現(xiàn)了一個具有流程控制和數(shù)據(jù)存盤功能的系統(tǒng)框架,降低了地面測發(fā)控軟件的耦合性,提高了軟件的復(fù)用性、擴(kuò)展性和可維護(hù)性。

        [1]孫海峰,陳迪,等.基于數(shù)據(jù)庫和面向?qū)ο蟮倪\(yùn)載火箭地面測發(fā)控軟件復(fù)用[J].航天控制,2010,28(2):79-82.(SUN Haifen,CHEN Di,et al.Software Reuse of Test Launch and Control System for Launch Vehicle Based on Database and Object Oriented[J].Aerospace Control,2010,28(2):79-82.)

        [2]Gamma E,Helm R,Johnson R.可復(fù)用面向?qū)ο筌浖幕A(chǔ)[M].李英軍,譯.北京:機(jī)械工業(yè)出版社,2000.(Gamma E,Helm R,Johnson R.Design Patterns:Elements of Reusable Object-Oriented Software[M].LI Yingjun, Translate.Beijing:China Machine Press,2000.)

        [3]夏克寒,牟建華,等.導(dǎo)彈測試流程優(yōu)化系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].導(dǎo)彈與航天運(yùn)載技術(shù),2012,318(2):43-46.(XIA Kehan,MOU Jianhua,et al.Design and Implementation of Missile Test Process Optimizing System[J].Missles And Space Vehicles,2012,318(2):43-46.)

        [4]Stephen D Huston,et al.ACE程序員指南——網(wǎng)絡(luò)與系統(tǒng)編程的實(shí)用設(shè)計模式[M].馬維達(dá)(譯).中國電力出版社,2004.(Stephen D Huston,et al.The ACE Programmer’s Guide:Practical Design Patterns for Network and Systems Programming[M].MA Weida.Translate.China Electric Power Press,2004.)

        [5]Douglas C Schmidt,Stephen D Huston.C++Network Programming,Volume 1:Mastering Complexity with ACE and Patterns[M].Addison-wesley,2002.

        [6]Douglas C Schmidt,Stephen D Huston.C++Network Programming,Volume 2:Mastering Complexity with ACE and Patterns[M].Addison-wesley,2003.

        [7]Fayad M,Schmidt D,Johnson R.Building Application Frameworks:Object--Oriented Foundations of Framework Design[M].New York:John Wiley&Sons,1999.

        Design Pattern Used in Software Reuse of Test Launch and Control System

        YANG Zhe MA Weihua MA Yingjin XIE Yuejiang
        Beijing Aerospace Automatic Control Institute,Beijing 100854,China

        With the enlargement of program scale,the ground test launch and control system is becoming more and more complex.In order to improve the efficiency of software development,the reusability,maintainability and extensibility of ground test and control system are needed to be enhanced.The design pattern can be used in software architecture design to achieve this goal.The command pattern,singleton pattern,observer pattern and the active object pattern are applied to the establishment of part of ground test launch and control system in this paper,and the non-functional requirements of software are improved.

        Test launch and control system software;Software reuse;Design patterns

        TP311.52

        A

        1006-3242(2014)02-0091-06

        2013-10-16

        楊 喆(1989-),女,河南平頂山人,碩士研究生,主要研究方向為軟件工程;馬衛(wèi)華(1970-),男,山東泰安人,研究員,主要從事飛行控制系統(tǒng)軟件研究工作;馬穎勁(1977-),男,江西上饒人,高級工程師,主要從事嵌入式軟件的開發(fā)設(shè)計工作;解月江(1978-),男,河北冀州人,高級工程師,主要研究方向為軟件工程。

        猜你喜歡
        功能
        拆解復(fù)雜功能
        鐘表(2023年5期)2023-10-27 04:20:44
        也談詩的“功能”
        中華詩詞(2022年6期)2022-12-31 06:41:24
        基層弄虛作假的“新功能取向”
        深刻理解功能關(guān)系
        鉗把功能創(chuàng)新實(shí)踐應(yīng)用
        關(guān)于非首都功能疏解的幾點(diǎn)思考
        基于PMC窗口功能實(shí)現(xiàn)設(shè)備同步刷刀功能
        懷孕了,凝血功能怎么變?
        媽媽寶寶(2017年2期)2017-02-21 01:21:24
        “簡直”和“幾乎”的表達(dá)功能
        中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
        在线日本看片免费人成视久网| 人妻久久999精品1024| 国产成人精品男人的天堂网站| 亚洲精品天堂日本亚洲精品| 国产免费观看黄av片| 亚洲色丰满少妇高潮18p| 一本到无码AV专区无码| 国产日产免费在线视频| 美利坚日韩av手机在线| 亚洲精品一区国产欧美| 日韩在线第二页| 中文少妇一区二区三区| 国产亚洲av看码精品永久| 性色av闺蜜一区二区三区| 日韩高清无码中文字幕综合一二三区 | 精品视频一区二区在线观看| 麻豆精品一区二区av白丝在线| 青楼妓女禁脔道具调教sm| 精品国产香蕉伊思人在线又爽又黄| 免费观看在线一区二区| 美女脱了内裤露出奶头的视频| 亚洲人午夜射精精品日韩| 亚洲精品美女久久久久久久| 国产精品二区三区在线观看| 久久精品国产99久久久| 使劲快高潮了国语对白在线| www.亚洲天堂.com| 中文字幕综合一区二区三区| 男人的天堂无码动漫av| 久久久久久久久久久熟女AV| 91青青草视频在线播放| 免费a级毛片无码a∨蜜芽试看| 欧美性开放bbw| 99国产精品无码专区| 在线人妻va中文字幕| 国产又色又爽又黄刺激在线视频 | 91九色极品探花内射| 亚洲精品成人片在线观看精品字幕| 国产在线高清视频| 蜜桃av一区二区三区| 久久国产劲爆∧v内射-百度|