嵌入式軟件設(shè)計(jì)模式手冊(cè)_第1頁(yè)
嵌入式軟件設(shè)計(jì)模式手冊(cè)_第2頁(yè)
嵌入式軟件設(shè)計(jì)模式手冊(cè)_第3頁(yè)
嵌入式軟件設(shè)計(jì)模式手冊(cè)_第4頁(yè)
嵌入式軟件設(shè)計(jì)模式手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

嵌入式軟件設(shè)計(jì)模式手冊(cè)嵌入式軟件設(shè)計(jì)模式手冊(cè)

一、概述

嵌入式軟件設(shè)計(jì)模式是針對(duì)嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程中常見(jiàn)問(wèn)題的解決方案,旨在提高代碼的可維護(hù)性、可擴(kuò)展性和可靠性。本手冊(cè)將介紹幾種常用的嵌入式軟件設(shè)計(jì)模式,并提供實(shí)際應(yīng)用指導(dǎo)。

嵌入式系統(tǒng)通常具有資源受限、實(shí)時(shí)性要求高等特點(diǎn),因此設(shè)計(jì)模式的選擇和應(yīng)用尤為重要。通過(guò)合理運(yùn)用設(shè)計(jì)模式,可以有效解決資源分配、任務(wù)調(diào)度、模塊間通信等問(wèn)題。

二、常用設(shè)計(jì)模式

(一)單例模式

單例模式確保一個(gè)類(lèi)只有一個(gè)實(shí)例,并提供一個(gè)全局訪問(wèn)點(diǎn)。

(1)應(yīng)用場(chǎng)景

-系統(tǒng)配置管理

-設(shè)備驅(qū)動(dòng)管理

-資源池管理

(2)實(shí)現(xiàn)步驟

1.將構(gòu)造函數(shù)聲明為私有,防止外部直接創(chuàng)建實(shí)例

2.創(chuàng)建一個(gè)靜態(tài)方法,用于返回唯一實(shí)例

3.在靜態(tài)方法中實(shí)現(xiàn)實(shí)例的懶加載

(3)示例代碼

typedefstruct{

//靜態(tài)變量存儲(chǔ)實(shí)例

statictypeof(this)instance;

//其他成員變量

intvalue;

}MyClass;

MyClassMyClass::instance=NULL;

MyClassMyClass::getInstance(){

if(instance==NULL){

instance=newMyClass();

}

returninstance;

}

(二)觀察者模式

觀察者模式定義了對(duì)象間的一對(duì)多依賴(lài)關(guān)系,當(dāng)一個(gè)對(duì)象狀態(tài)改變時(shí),所有依賴(lài)它的對(duì)象都會(huì)收到通知并自動(dòng)更新。

(1)應(yīng)用場(chǎng)景

-事件處理系統(tǒng)

-數(shù)據(jù)監(jiān)控應(yīng)用

-設(shè)備狀態(tài)通知

(2)實(shí)現(xiàn)步驟

1.創(chuàng)建主題(Subject)接口,包含注冊(cè)、移除、通知觀察者等方法

2.創(chuàng)建觀察者(Observer)接口,包含更新方法

3.主題存儲(chǔ)觀察者列表,實(shí)現(xiàn)通知機(jī)制

(3)示例代碼

//觀察者接口

typedefvoid(ObserverCallback)(voidcontext);

//觀察者結(jié)構(gòu)

typedefstruct{

ObserverCallbackcallback;

voidcontext;

}Observer;

//主題接口

typedefstruct{

Observerobservers;

intobserver_count;

voidcontext;

}Subject;

voidSubjectRegister(Subjectsubject,Observerobserver){

//注冊(cè)觀察者

}

voidSubjectNotify(Subjectsubject){

//通知所有觀察者

}

(三)工廠模式

工廠模式定義一個(gè)創(chuàng)建對(duì)象的接口,讓子類(lèi)決定實(shí)例化哪一個(gè)類(lèi)。

(1)應(yīng)用場(chǎng)景

-設(shè)備驅(qū)動(dòng)管理

-數(shù)據(jù)格式轉(zhuǎn)換

-資源對(duì)象創(chuàng)建

(2)實(shí)現(xiàn)步驟

1.創(chuàng)建產(chǎn)品(Product)接口或抽象類(lèi)

2.創(chuàng)建具體產(chǎn)品類(lèi)實(shí)現(xiàn)產(chǎn)品接口

3.創(chuàng)建工廠(Factory)類(lèi),包含創(chuàng)建產(chǎn)品的靜態(tài)方法

(3)示例代碼

//產(chǎn)品接口

typedefstruct{

void(initialize)(void);

void(terminate)(void);

}Product;

//具體產(chǎn)品

typedefstruct{

Productbase;

//其他成員

}ConcreteProduct;

//工廠方法

ProductCreateProduct(){

ConcreteProductproduct=newConcreteProduct();

product->base.initialize=ConcreteProductInitialize;

product->base.terminate=ConcreteProductTerminate;

return&product->base;

}

voidConcreteProductInitialize(){

//初始化代碼

}

(四)適配器模式

適配器模式將一個(gè)類(lèi)的接口轉(zhuǎn)換成客戶(hù)希望的另一個(gè)接口。

(1)應(yīng)用場(chǎng)景

-老舊設(shè)備接口兼容

-第三方庫(kù)集成

-數(shù)據(jù)格式轉(zhuǎn)換

(2)實(shí)現(xiàn)步驟

1.創(chuàng)建目標(biāo)(Target)接口

2.創(chuàng)建適配器(Adapter)類(lèi)實(shí)現(xiàn)目標(biāo)接口

3.適配器內(nèi)部包含被適配(Adaptee)對(duì)象,實(shí)現(xiàn)接口轉(zhuǎn)換

(3)示例代碼

//目標(biāo)接口

typedefstruct{

void(operation)(void);

}Target;

//被適配類(lèi)

typedefstruct{

void(specificOperation)(void);

}Adaptee;

//適配器

typedefstruct{

Targettarget;

Adapteeadaptee;

}Adapter;

voidAdapterOperation(){

//調(diào)用被適配類(lèi)方法

adaptee.specificOperation();

}

三、設(shè)計(jì)模式應(yīng)用建議

(一)選擇合適的設(shè)計(jì)模式

根據(jù)具體應(yīng)用場(chǎng)景選擇最合適的設(shè)計(jì)模式,避免過(guò)度設(shè)計(jì)。例如:

-對(duì)于需要全局訪問(wèn)的對(duì)象,單例模式是最佳選擇

-對(duì)于事件驅(qū)動(dòng)系統(tǒng),觀察者模式更為合適

-當(dāng)需要整合不同接口時(shí),適配器模式更為有效

(二)保持模式簡(jiǎn)潔

嵌入式系統(tǒng)資源有限,設(shè)計(jì)模式實(shí)現(xiàn)應(yīng)盡可能簡(jiǎn)潔,避免增加不必要的開(kāi)銷(xiāo)。例如:

-單例模式應(yīng)使用懶加載方式

-觀察者模式的通知機(jī)制應(yīng)高效

-工廠方法應(yīng)避免復(fù)雜的創(chuàng)建邏輯

(三)文檔化設(shè)計(jì)決策

對(duì)所有設(shè)計(jì)模式的應(yīng)用進(jìn)行文檔化,記錄設(shè)計(jì)理由和實(shí)現(xiàn)細(xì)節(jié),便于后續(xù)維護(hù)。建議包括:

-模式應(yīng)用場(chǎng)景描述

-類(lèi)圖關(guān)系說(shuō)明

-關(guān)鍵代碼解釋

-性能分析數(shù)據(jù)

(四)測(cè)試驗(yàn)證

對(duì)所有設(shè)計(jì)模式的應(yīng)用進(jìn)行充分測(cè)試,確保其滿(mǎn)足系統(tǒng)需求。測(cè)試內(nèi)容應(yīng)包括:

-功能測(cè)試

-性能測(cè)試

-資源占用測(cè)試

-實(shí)時(shí)性測(cè)試

三、設(shè)計(jì)模式應(yīng)用建議(續(xù))

(五)模式組合使用

在實(shí)際項(xiàng)目中,單一設(shè)計(jì)模式往往無(wú)法完全解決問(wèn)題,需要將多個(gè)設(shè)計(jì)模式組合使用。例如:

1.單例模式+工廠模式:系統(tǒng)中的核心資源管理器(如內(nèi)存池)使用單例模式確保全局唯一,而資源對(duì)象的創(chuàng)建通過(guò)工廠模式進(jìn)行管理。

-步驟:

(1)定義資源管理器單例類(lèi),包含資源池?cái)?shù)據(jù)結(jié)構(gòu)。

(2)在單例類(lèi)中實(shí)現(xiàn)工廠方法,負(fù)責(zé)創(chuàng)建和管理資源對(duì)象。

(3)提供全局訪問(wèn)點(diǎn)獲取單例實(shí)例,通過(guò)工廠方法創(chuàng)建資源。

2.觀察者模式+適配器模式:當(dāng)系統(tǒng)需要監(jiān)控外部設(shè)備狀態(tài),并將狀態(tài)變化通知到系統(tǒng)內(nèi)部模塊時(shí),可以組合使用這兩種模式。

-步驟:

(1)定義設(shè)備狀態(tài)通知接口(目標(biāo)接口)。

(2)外部設(shè)備實(shí)現(xiàn)該接口(適配器)。

(3)系統(tǒng)內(nèi)部模塊作為觀察者注冊(cè)到通知接口。

(4)設(shè)備狀態(tài)變化時(shí),通過(guò)通知接口觸發(fā)觀察者更新。

(六)考慮實(shí)時(shí)性要求

嵌入式系統(tǒng)通常具有實(shí)時(shí)性要求,設(shè)計(jì)模式的選擇和應(yīng)用需要考慮實(shí)時(shí)性因素:

1.最小化上下文切換:避免頻繁的觀察者通知導(dǎo)致上下文切換,可以采用批處理通知方式。

-方法:

(1)觀察者注冊(cè)時(shí)指定優(yōu)先級(jí)。

(2)主題按優(yōu)先級(jí)合并通知事件。

(3)觀察者接收合并后的事件序列。

2.預(yù)分配資源:對(duì)于需要?jiǎng)討B(tài)創(chuàng)建的對(duì)象,應(yīng)預(yù)先分配資源并緩存,避免運(yùn)行時(shí)分配導(dǎo)致延遲。

-步驟:

(1)根據(jù)系統(tǒng)負(fù)載估算對(duì)象數(shù)量。

(2)在系統(tǒng)初始化時(shí)預(yù)創(chuàng)建對(duì)象并存儲(chǔ)到對(duì)象池。

(3)需要時(shí)從對(duì)象池獲取,使用完畢后返回池中。

(七)設(shè)計(jì)模式的權(quán)衡

每種設(shè)計(jì)模式都有其優(yōu)缺點(diǎn),應(yīng)用時(shí)需要權(quán)衡:

1.單例模式的權(quán)衡:

-優(yōu)點(diǎn):確保全局唯一訪問(wèn)點(diǎn),方便資源管理。

-缺點(diǎn):可能導(dǎo)致資源競(jìng)爭(zhēng),不適合多線程環(huán)境。

-解決方案:使用線程安全的單例實(shí)現(xiàn),如雙重檢查鎖定。

2.觀察者模式的權(quán)衡:

-優(yōu)點(diǎn):解耦主題和觀察者,易于擴(kuò)展。

-缺點(diǎn):可能導(dǎo)致事件風(fēng)暴,需要合理控制通知范圍。

-解決方案:實(shí)現(xiàn)事件過(guò)濾機(jī)制,限制通知的觀察者數(shù)量。

(八)嵌入式特定考慮

嵌入式系統(tǒng)開(kāi)發(fā)需要考慮硬件資源限制,設(shè)計(jì)模式應(yīng)用時(shí)應(yīng)注意:

1.內(nèi)存管理:

-使用對(duì)象池模式管理內(nèi)存分配,減少內(nèi)存碎片。

-避免動(dòng)態(tài)內(nèi)存分配,優(yōu)先使用靜態(tài)分配。

2.功耗管理:

-對(duì)于低功耗設(shè)備,觀察者模式應(yīng)實(shí)現(xiàn)休眠機(jī)制。

-使用事件觸發(fā)而非輪詢(xún)方式。

3.硬件交互:

-設(shè)備驅(qū)動(dòng)程序通常使用適配器模式與不同硬件交互。

-驅(qū)動(dòng)程序接口應(yīng)封裝硬件細(xì)節(jié),提供統(tǒng)一的操作接口。

(九)最佳實(shí)踐清單

1.初始化階段:

-單例對(duì)象應(yīng)在系統(tǒng)初始化時(shí)創(chuàng)建和配置

-工廠方法應(yīng)預(yù)先創(chuàng)建常用對(duì)象實(shí)例

-觀察者應(yīng)注冊(cè)到主題前完成初始化

2.運(yùn)行時(shí)管理:

-資源對(duì)象應(yīng)實(shí)現(xiàn)自動(dòng)釋放機(jī)制

-事件通知應(yīng)支持中斷處理

-狀態(tài)變化應(yīng)提供原子操作接口

3.維護(hù)階段:

-設(shè)計(jì)模式應(yīng)用應(yīng)有文檔記錄

-類(lèi)圖應(yīng)清晰展示模式關(guān)系

-代碼應(yīng)添加模式相關(guān)的注釋

4.性能優(yōu)化:

-避免不必要的模式嵌套

-優(yōu)化模式實(shí)現(xiàn)的關(guān)鍵路徑

-使用分析工具評(píng)估模式開(kāi)銷(xiāo)

嵌入式軟件設(shè)計(jì)模式手冊(cè)

一、概述

嵌入式軟件設(shè)計(jì)模式是針對(duì)嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程中常見(jiàn)問(wèn)題的解決方案,旨在提高代碼的可維護(hù)性、可擴(kuò)展性和可靠性。本手冊(cè)將介紹幾種常用的嵌入式軟件設(shè)計(jì)模式,并提供實(shí)際應(yīng)用指導(dǎo)。

嵌入式系統(tǒng)通常具有資源受限、實(shí)時(shí)性要求高等特點(diǎn),因此設(shè)計(jì)模式的選擇和應(yīng)用尤為重要。通過(guò)合理運(yùn)用設(shè)計(jì)模式,可以有效解決資源分配、任務(wù)調(diào)度、模塊間通信等問(wèn)題。

二、常用設(shè)計(jì)模式

(一)單例模式

單例模式確保一個(gè)類(lèi)只有一個(gè)實(shí)例,并提供一個(gè)全局訪問(wèn)點(diǎn)。

(1)應(yīng)用場(chǎng)景

-系統(tǒng)配置管理

-設(shè)備驅(qū)動(dòng)管理

-資源池管理

(2)實(shí)現(xiàn)步驟

1.將構(gòu)造函數(shù)聲明為私有,防止外部直接創(chuàng)建實(shí)例

2.創(chuàng)建一個(gè)靜態(tài)方法,用于返回唯一實(shí)例

3.在靜態(tài)方法中實(shí)現(xiàn)實(shí)例的懶加載

(3)示例代碼

typedefstruct{

//靜態(tài)變量存儲(chǔ)實(shí)例

statictypeof(this)instance;

//其他成員變量

intvalue;

}MyClass;

MyClassMyClass::instance=NULL;

MyClassMyClass::getInstance(){

if(instance==NULL){

instance=newMyClass();

}

returninstance;

}

(二)觀察者模式

觀察者模式定義了對(duì)象間的一對(duì)多依賴(lài)關(guān)系,當(dāng)一個(gè)對(duì)象狀態(tài)改變時(shí),所有依賴(lài)它的對(duì)象都會(huì)收到通知并自動(dòng)更新。

(1)應(yīng)用場(chǎng)景

-事件處理系統(tǒng)

-數(shù)據(jù)監(jiān)控應(yīng)用

-設(shè)備狀態(tài)通知

(2)實(shí)現(xiàn)步驟

1.創(chuàng)建主題(Subject)接口,包含注冊(cè)、移除、通知觀察者等方法

2.創(chuàng)建觀察者(Observer)接口,包含更新方法

3.主題存儲(chǔ)觀察者列表,實(shí)現(xiàn)通知機(jī)制

(3)示例代碼

//觀察者接口

typedefvoid(ObserverCallback)(voidcontext);

//觀察者結(jié)構(gòu)

typedefstruct{

ObserverCallbackcallback;

voidcontext;

}Observer;

//主題接口

typedefstruct{

Observerobservers;

intobserver_count;

voidcontext;

}Subject;

voidSubjectRegister(Subjectsubject,Observerobserver){

//注冊(cè)觀察者

}

voidSubjectNotify(Subjectsubject){

//通知所有觀察者

}

(三)工廠模式

工廠模式定義一個(gè)創(chuàng)建對(duì)象的接口,讓子類(lèi)決定實(shí)例化哪一個(gè)類(lèi)。

(1)應(yīng)用場(chǎng)景

-設(shè)備驅(qū)動(dòng)管理

-數(shù)據(jù)格式轉(zhuǎn)換

-資源對(duì)象創(chuàng)建

(2)實(shí)現(xiàn)步驟

1.創(chuàng)建產(chǎn)品(Product)接口或抽象類(lèi)

2.創(chuàng)建具體產(chǎn)品類(lèi)實(shí)現(xiàn)產(chǎn)品接口

3.創(chuàng)建工廠(Factory)類(lèi),包含創(chuàng)建產(chǎn)品的靜態(tài)方法

(3)示例代碼

//產(chǎn)品接口

typedefstruct{

void(initialize)(void);

void(terminate)(void);

}Product;

//具體產(chǎn)品

typedefstruct{

Productbase;

//其他成員

}ConcreteProduct;

//工廠方法

ProductCreateProduct(){

ConcreteProductproduct=newConcreteProduct();

product->base.initialize=ConcreteProductInitialize;

product->base.terminate=ConcreteProductTerminate;

return&product->base;

}

voidConcreteProductInitialize(){

//初始化代碼

}

(四)適配器模式

適配器模式將一個(gè)類(lèi)的接口轉(zhuǎn)換成客戶(hù)希望的另一個(gè)接口。

(1)應(yīng)用場(chǎng)景

-老舊設(shè)備接口兼容

-第三方庫(kù)集成

-數(shù)據(jù)格式轉(zhuǎn)換

(2)實(shí)現(xiàn)步驟

1.創(chuàng)建目標(biāo)(Target)接口

2.創(chuàng)建適配器(Adapter)類(lèi)實(shí)現(xiàn)目標(biāo)接口

3.適配器內(nèi)部包含被適配(Adaptee)對(duì)象,實(shí)現(xiàn)接口轉(zhuǎn)換

(3)示例代碼

//目標(biāo)接口

typedefstruct{

void(operation)(void);

}Target;

//被適配類(lèi)

typedefstruct{

void(specificOperation)(void);

}Adaptee;

//適配器

typedefstruct{

Targettarget;

Adapteeadaptee;

}Adapter;

voidAdapterOperation(){

//調(diào)用被適配類(lèi)方法

adaptee.specificOperation();

}

三、設(shè)計(jì)模式應(yīng)用建議

(一)選擇合適的設(shè)計(jì)模式

根據(jù)具體應(yīng)用場(chǎng)景選擇最合適的設(shè)計(jì)模式,避免過(guò)度設(shè)計(jì)。例如:

-對(duì)于需要全局訪問(wèn)的對(duì)象,單例模式是最佳選擇

-對(duì)于事件驅(qū)動(dòng)系統(tǒng),觀察者模式更為合適

-當(dāng)需要整合不同接口時(shí),適配器模式更為有效

(二)保持模式簡(jiǎn)潔

嵌入式系統(tǒng)資源有限,設(shè)計(jì)模式實(shí)現(xiàn)應(yīng)盡可能簡(jiǎn)潔,避免增加不必要的開(kāi)銷(xiāo)。例如:

-單例模式應(yīng)使用懶加載方式

-觀察者模式的通知機(jī)制應(yīng)高效

-工廠方法應(yīng)避免復(fù)雜的創(chuàng)建邏輯

(三)文檔化設(shè)計(jì)決策

對(duì)所有設(shè)計(jì)模式的應(yīng)用進(jìn)行文檔化,記錄設(shè)計(jì)理由和實(shí)現(xiàn)細(xì)節(jié),便于后續(xù)維護(hù)。建議包括:

-模式應(yīng)用場(chǎng)景描述

-類(lèi)圖關(guān)系說(shuō)明

-關(guān)鍵代碼解釋

-性能分析數(shù)據(jù)

(四)測(cè)試驗(yàn)證

對(duì)所有設(shè)計(jì)模式的應(yīng)用進(jìn)行充分測(cè)試,確保其滿(mǎn)足系統(tǒng)需求。測(cè)試內(nèi)容應(yīng)包括:

-功能測(cè)試

-性能測(cè)試

-資源占用測(cè)試

-實(shí)時(shí)性測(cè)試

三、設(shè)計(jì)模式應(yīng)用建議(續(xù))

(五)模式組合使用

在實(shí)際項(xiàng)目中,單一設(shè)計(jì)模式往往無(wú)法完全解決問(wèn)題,需要將多個(gè)設(shè)計(jì)模式組合使用。例如:

1.單例模式+工廠模式:系統(tǒng)中的核心資源管理器(如內(nèi)存池)使用單例模式確保全局唯一,而資源對(duì)象的創(chuàng)建通過(guò)工廠模式進(jìn)行管理。

-步驟:

(1)定義資源管理器單例類(lèi),包含資源池?cái)?shù)據(jù)結(jié)構(gòu)。

(2)在單例類(lèi)中實(shí)現(xiàn)工廠方法,負(fù)責(zé)創(chuàng)建和管理資源對(duì)象。

(3)提供全局訪問(wèn)點(diǎn)獲取單例實(shí)例,通過(guò)工廠方法創(chuàng)建資源。

2.觀察者模式+適配器模式:當(dāng)系統(tǒng)需要監(jiān)控外部設(shè)備狀態(tài),并將狀態(tài)變化通知到系統(tǒng)內(nèi)部模塊時(shí),可以組合使用這兩種模式。

-步驟:

(1)定義設(shè)備狀態(tài)通知接口(目標(biāo)接口)。

(2)外部設(shè)備實(shí)現(xiàn)該接口(適配器)。

(3)系統(tǒng)內(nèi)部模塊作為觀察者注冊(cè)到通知接口。

(4)設(shè)備狀態(tài)變化時(shí),通過(guò)通知接口觸發(fā)觀察者更新。

(六)考慮實(shí)時(shí)性要求

嵌入式系統(tǒng)通常具有實(shí)時(shí)性要求,設(shè)計(jì)模式的選擇和應(yīng)用需要考慮實(shí)時(shí)性因素:

1.最小化上下文切換:避免頻繁的觀察者通知導(dǎo)致上下文切換,可以采用批處理通知方式。

-方法:

(1)觀察者注冊(cè)時(shí)指定優(yōu)先級(jí)。

(2)主題按優(yōu)先級(jí)合并通知事件。

(3)觀察者接

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論