第6章 設(shè)計(jì)原則_第1頁(yè)
第6章 設(shè)計(jì)原則_第2頁(yè)
第6章 設(shè)計(jì)原則_第3頁(yè)
第6章 設(shè)計(jì)原則_第4頁(yè)
第6章 設(shè)計(jì)原則_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、常文萃常文萃*單一職責(zé)原則單一職責(zé)原則*開放封閉原則開放封閉原則 *里氏替換原則里氏替換原則*依賴倒轉(zhuǎn)原則依賴倒轉(zhuǎn)原則*迪米特法則迪米特法則*接口隔離原則接口隔離原則單一職責(zé)原則單一職責(zé)原則(Single Responsibility Principle 簡(jiǎn)稱簡(jiǎn)稱SRP)1. 核心思想核心思想 就一個(gè)類而言,應(yīng)該僅有一個(gè)引起它變化的原因。就一個(gè)類而言,應(yīng)該僅有一個(gè)引起它變化的原因。2. 產(chǎn)生原因產(chǎn)生原因 之之所以會(huì)出現(xiàn)單一職責(zé)原則就是因?yàn)樵谲浖O(shè)計(jì)時(shí)會(huì)出現(xiàn)以下類似所以會(huì)出現(xiàn)單一職責(zé)原則就是因?yàn)樵谲浖O(shè)計(jì)時(shí)會(huì)出現(xiàn)以下類似場(chǎng)景:場(chǎng)景: T負(fù)責(zé)兩個(gè)不同的職責(zé):職責(zé)負(fù)責(zé)兩個(gè)不同的職責(zé):職責(zé)P1,職責(zé),

2、職責(zé)P2。當(dāng)由于職責(zé)。當(dāng)由于職責(zé)P1需求發(fā)生需求發(fā)生改變而需要修改類改變而需要修改類T時(shí),有可能會(huì)導(dǎo)致原本運(yùn)行正常的職責(zé)時(shí),有可能會(huì)導(dǎo)致原本運(yùn)行正常的職責(zé)P2功能發(fā)生功能發(fā)生故障。也就是說(shuō)職責(zé)故障。也就是說(shuō)職責(zé)P1和和P2被耦合在了一起。被耦合在了一起。3. 解解決辦法決辦法 遵遵守單一職責(zé)原則,將不同的職責(zé)封裝到不同的類或模守單一職責(zé)原則,將不同的職責(zé)封裝到不同的類或模塊中塊中。4. 舉例舉例 開發(fā)一個(gè)俄羅斯方塊游戲,要考慮將程序分為游戲邏輯開發(fā)一個(gè)俄羅斯方塊游戲,要考慮將程序分為游戲邏輯和界面邏輯兩個(gè)類。游戲邏輯指表示游戲區(qū)域的數(shù)組中每一和界面邏輯兩個(gè)類。游戲邏輯指表示游戲區(qū)域的數(shù)組中每一

3、項(xiàng)值變化的問(wèn)題,如下落、旋轉(zhuǎn)、碰撞檢測(cè)、移動(dòng)等;界面項(xiàng)值變化的問(wèn)題,如下落、旋轉(zhuǎn)、碰撞檢測(cè)、移動(dòng)等;界面邏輯負(fù)責(zé)根據(jù)數(shù)組的數(shù)據(jù)進(jìn)行繪制和擦除等。邏輯負(fù)責(zé)根據(jù)數(shù)組的數(shù)據(jù)進(jìn)行繪制和擦除等。開放開放封閉原則封閉原則(Open Closed Principle,簡(jiǎn)稱簡(jiǎn)稱OCP)1. 1. 核心思想核心思想 軟軟件實(shí)件實(shí)體(類、模塊、函數(shù)等)應(yīng)體(類、模塊、函數(shù)等)應(yīng)該是可擴(kuò)展,而不該是可擴(kuò)展,而不可修改的。也就是說(shuō),對(duì)可修改的。也就是說(shuō),對(duì)擴(kuò)展擴(kuò)展是是開放開放的,而對(duì)的,而對(duì)修改修改是是封閉封閉的。的。 對(duì)對(duì)擴(kuò)展開放,意味著有新的需求或變化時(shí),可以對(duì)現(xiàn)擴(kuò)展開放,意味著有新的需求或變化時(shí),可以對(duì)現(xiàn)有代碼

4、進(jìn)行擴(kuò)展,以適應(yīng)新的情有代碼進(jìn)行擴(kuò)展,以適應(yīng)新的情況;況; 對(duì)對(duì)修改封閉,意味著類一旦設(shè)計(jì)完成修改封閉,意味著類一旦設(shè)計(jì)完成,就不,就不要對(duì)類進(jìn)要對(duì)類進(jìn)行任何修改。行任何修改。 2.2.產(chǎn)生原因產(chǎn)生原因 “需求總是變需求總是變化的化的”、“世界上沒有一個(gè)軟件是不變的世界上沒有一個(gè)軟件是不變的”,因此對(duì)因此對(duì)于軟件設(shè)計(jì)者來(lái)說(shuō),必須在于軟件設(shè)計(jì)者來(lái)說(shuō),必須在不不修修改原有系統(tǒng)的改原有系統(tǒng)的情況下,情況下,實(shí)現(xiàn)靈活的系統(tǒng)擴(kuò)展實(shí)現(xiàn)靈活的系統(tǒng)擴(kuò)展。 3. 實(shí)施辦實(shí)施辦法法 只只有依賴于抽象。實(shí)現(xiàn)開放封閉有依賴于抽象。實(shí)現(xiàn)開放封閉的基本思路就的基本思路就是對(duì)抽象編是對(duì)抽象編程,而不對(duì)具體編程,因?yàn)槌橄笙鄬?duì)

5、穩(wěn)定。讓類依賴于固定的程,而不對(duì)具體編程,因?yàn)槌橄笙鄬?duì)穩(wěn)定。讓類依賴于固定的抽象,所以對(duì)修改就是封閉的;而通過(guò)面向?qū)ο蟮睦^承抽象,所以對(duì)修改就是封閉的;而通過(guò)面向?qū)ο蟮睦^承和多和多態(tài)態(tài)機(jī)制,可以實(shí)現(xiàn)對(duì)抽象體的繼承,通過(guò)覆寫其方法來(lái)改變固有機(jī)制,可以實(shí)現(xiàn)對(duì)抽象體的繼承,通過(guò)覆寫其方法來(lái)改變固有行為,實(shí)現(xiàn)新的擴(kuò)展方法,所以對(duì)于擴(kuò)展就是開放的行為,實(shí)現(xiàn)新的擴(kuò)展方法,所以對(duì)于擴(kuò)展就是開放的。依賴倒轉(zhuǎn)原依賴倒轉(zhuǎn)原則則( Dependence Inversion Principle ,簡(jiǎn)稱簡(jiǎn)稱DIP)1. 1. 核心思想核心思想(1 1) 高高層模塊不應(yīng)該依賴低層模塊,兩者都應(yīng)該依賴于抽層模塊不應(yīng)該依賴低

6、層模塊,兩者都應(yīng)該依賴于抽象。象。(2 2)抽象不)抽象不應(yīng)該依賴于細(xì)應(yīng)該依賴于細(xì)節(jié)。細(xì)節(jié)應(yīng)節(jié)。細(xì)節(jié)應(yīng)該依賴抽該依賴抽象象(要(要針對(duì)接針對(duì)接口編程而不要針對(duì)實(shí)現(xiàn)編程)口編程而不要針對(duì)實(shí)現(xiàn)編程)。 其中,抽象指抽象類或接口;細(xì)節(jié)指具體實(shí)現(xiàn)類。其中,抽象指抽象類或接口;細(xì)節(jié)指具體實(shí)現(xiàn)類。 依依賴賴倒轉(zhuǎn)原倒轉(zhuǎn)原則的本則的本質(zhì)是質(zhì)是通過(guò)抽象(抽象類或接口)使各個(gè)通過(guò)抽象(抽象類或接口)使各個(gè)類或模塊的實(shí)現(xiàn)彼此獨(dú)立,不相互影響,實(shí)現(xiàn)模塊間的松耦合類或模塊的實(shí)現(xiàn)彼此獨(dú)立,不相互影響,實(shí)現(xiàn)模塊間的松耦合。1)1)如何如何理理解高解高層模塊不應(yīng)該依賴低層模塊,兩者都應(yīng)該依賴于抽層模塊不應(yīng)該依賴低層模塊,兩者

7、都應(yīng)該依賴于抽象象 在面向過(guò)程的開發(fā)中,為了使常用的代碼可復(fù)用,一般都會(huì)把在面向過(guò)程的開發(fā)中,為了使常用的代碼可復(fù)用,一般都會(huì)把這些常用的代碼寫成許許多多函數(shù)的程序庫(kù),這樣做新項(xiàng)目的時(shí)候這些常用的代碼寫成許許多多函數(shù)的程序庫(kù),這樣做新項(xiàng)目的時(shí)候調(diào)用這些函數(shù)就可以了。調(diào)用這些函數(shù)就可以了。例如:我們做的項(xiàng)目大多要訪問(wèn)數(shù)據(jù)庫(kù),所以我們就把數(shù)據(jù)庫(kù)的代例如:我們做的項(xiàng)目大多要訪問(wèn)數(shù)據(jù)庫(kù),所以我們就把數(shù)據(jù)庫(kù)的代碼寫成了函數(shù),每次做新項(xiàng)目時(shí)就去調(diào)用這些函數(shù),碼寫成了函數(shù),每次做新項(xiàng)目時(shí)就去調(diào)用這些函數(shù),這就這就是高層依是高層依賴于低層模賴于低層模塊塊。問(wèn)問(wèn)題是,題是,我們?cè)谧鲂马?xiàng)目的時(shí)候,會(huì)發(fā)現(xiàn)業(yè)務(wù)邏輯我

8、們?cè)谧鲂马?xiàng)目的時(shí)候,會(huì)發(fā)現(xiàn)業(yè)務(wù)邏輯的高層模塊是一樣的,我們希望能重用這些高層模塊,但是這些高的高層模塊是一樣的,我們希望能重用這些高層模塊,但是這些高層模塊和低層模塊的數(shù)據(jù)庫(kù)綁定在一起了,這層模塊和低層模塊的數(shù)據(jù)庫(kù)綁定在一起了,這樣就樣就沒辦法復(fù)用這些沒辦法復(fù)用這些高層模高層模塊。塊。 如果高如果高層模塊和低層模塊都依賴于抽象(接口或抽象類),只層模塊和低層模塊都依賴于抽象(接口或抽象類),只要接口穩(wěn)定,那么任何一個(gè)更改都不用擔(dān)心其他受到影響了。要接口穩(wěn)定,那么任何一個(gè)更改都不用擔(dān)心其他受到影響了。2)針)針對(duì)接口編對(duì)接口編程而程而不是針對(duì)實(shí)現(xiàn)編不是針對(duì)實(shí)現(xiàn)編程意義程意義 我我們現(xiàn)在使用的電腦

9、有各式的品牌,聯(lián)想、神舟、戴爾等等們現(xiàn)在使用的電腦有各式的品牌,聯(lián)想、神舟、戴爾等等,電,電腦需要用到鼠標(biāo),鍵盤腦需要用到鼠標(biāo),鍵盤;假假設(shè)鼠標(biāo)、鍵盤是針對(duì)某一個(gè)品牌的機(jī)器設(shè)鼠標(biāo)、鍵盤是針對(duì)某一個(gè)品牌的機(jī)器實(shí)現(xiàn)去做的話實(shí)現(xiàn)去做的話,那么市,那么市面上的鍵盤和鼠標(biāo)就都是各式各樣的,有一面上的鍵盤和鼠標(biāo)就都是各式各樣的,有一天鼠天鼠標(biāo)或標(biāo)或鍵盤壞了,我們鍵盤壞了,我們要記要記住這個(gè)電腦是什么品住這個(gè)電腦是什么品牌、什牌、什么型么型號(hào)的號(hào)的再去買,很麻煩。再去買,很麻煩。 現(xiàn)現(xiàn)在的在的電腦基本上都是使用電腦基本上都是使用USB接接口,口,無(wú)論是鍵盤也好,鼠標(biāo)無(wú)論是鍵盤也好,鼠標(biāo)也好也好,只,只要買要

10、買USB接口的就可以使接口的就可以使用。同用。同時(shí),使用時(shí),使用USB接口還可以接口還可以有其他的擴(kuò)展有其他的擴(kuò)展,例,例如,實(shí)現(xiàn)了如,實(shí)現(xiàn)了USB接口的小臺(tái)燈,只要接上接口的小臺(tái)燈,只要接上USB線線就可以照就可以照明、實(shí)明、實(shí)現(xiàn)了現(xiàn)了USB接接口的充電器,接口的充電器,接到電到電腦上就可以充腦上就可以充電。電。 一些生活中的例子:一些生活中的例子:1、AGP插槽。主板和顯卡之間關(guān)系的抽象插槽。主板和顯卡之間關(guān)系的抽象。主主板和顯卡通常是使用板和顯卡通常是使用AGP插槽來(lái)連接的插槽來(lái)連接的,只,只要接口適配,不管是要接口適配,不管是主板還是顯卡更換,都不是問(wèn)題。主板還是顯卡更換,都不是問(wèn)題。

11、2、駕照。司機(jī)和汽車之間關(guān)系的抽象、駕照。司機(jī)和汽車之間關(guān)系的抽象。 有有駕照的司機(jī)可以駕駛各種汽車。駕照的司機(jī)可以駕駛各種汽車。3、電源插座。、電源插座。2. 實(shí)實(shí)現(xiàn)方法現(xiàn)方法在在實(shí)際編程中實(shí)際編程中,一,一般需要做到如下般需要做到如下3 3點(diǎn):點(diǎn):低層模塊盡量都要有抽象類或接口,或者兩者都有。低層模塊盡量都要有抽象類或接口,或者兩者都有。變量的聲明類型盡量是抽象類或接口。變量的聲明類型盡量是抽象類或接口。使用繼承時(shí)遵循里氏替換原則。使用繼承時(shí)遵循里氏替換原則。 一句話,依一句話,依賴賴倒轉(zhuǎn)原倒轉(zhuǎn)原則的核心就是則的核心就是要面要面向接口編向接口編程。程。迪米特法則迪米特法則(Law of D

12、emeter,簡(jiǎn)稱,簡(jiǎn)稱 LoD)又稱為)又稱為最最少知識(shí)原少知識(shí)原則則 一一個(gè)對(duì)象應(yīng)當(dāng)對(duì)其他對(duì)象有盡可能少的了解個(gè)對(duì)象應(yīng)當(dāng)對(duì)其他對(duì)象有盡可能少的了解,不和陌生人說(shuō)話不和陌生人說(shuō)話。 迪米特法則不希望類之間建立直接的聯(lián)系。如果真的有需要建立聯(lián)系,迪米特法則不希望類之間建立直接的聯(lián)系。如果真的有需要建立聯(lián)系,也希望能通過(guò)它的友元類來(lái)轉(zhuǎn)達(dá)。也希望能通過(guò)它的友元類來(lái)轉(zhuǎn)達(dá)。 類與類之間的關(guān)系越密切,耦合度越大,當(dāng)一個(gè)類發(fā)生改變時(shí),類與類之間的關(guān)系越密切,耦合度越大,當(dāng)一個(gè)類發(fā)生改變時(shí),對(duì)另一個(gè)類的影響也越大對(duì)另一個(gè)類的影響也越大。 降低類之間的耦合。一個(gè)軟件實(shí)體應(yīng)當(dāng)盡可能少的與降低類之間的耦合。一個(gè)軟

13、件實(shí)體應(yīng)當(dāng)盡可能少的與其他實(shí)體發(fā)生相互作用。每一個(gè)軟件單位對(duì)其他的單位都其他實(shí)體發(fā)生相互作用。每一個(gè)軟件單位對(duì)其他的單位都只有最少的知識(shí),而且局限于那些與本單位密切相關(guān)的軟只有最少的知識(shí),而且局限于那些與本單位密切相關(guān)的軟件單位。件單位。 由于每個(gè)類盡量減少對(duì)其他類的依賴,因此,很容易由于每個(gè)類盡量減少對(duì)其他類的依賴,因此,很容易使得系統(tǒng)的功能模塊功能獨(dú)立,相互之間不存在(或很少使得系統(tǒng)的功能模塊功能獨(dú)立,相互之間不存在(或很少有)依賴關(guān)系。有)依賴關(guān)系。里氏代換原里氏代換原則則( Liskov Substitution Principle,簡(jiǎn)稱,簡(jiǎn)稱LSP )1. 1. 核心思想核心思想 子

14、子類型必須能夠替換掉它們的父類型類型必須能夠替換掉它們的父類型。 可以簡(jiǎn)單地理可以簡(jiǎn)單地理解解為,一為,一個(gè)軟件實(shí)體如果使用的是一個(gè)父?jìng)€(gè)軟件實(shí)體如果使用的是一個(gè)父類,那么一定適用于其子類,而且它察覺不出父類對(duì)象和子類,那么一定適用于其子類,而且它察覺不出父類對(duì)象和子類對(duì)象的區(qū)別類對(duì)象的區(qū)別。即即軟軟件里件里面把面把父類都替換成它的子類,程序父類都替換成它的子類,程序的行為沒有變化的行為沒有變化。例:對(duì)于鳥類例:對(duì)于鳥類 和企鵝類,如果鳥類中和企鵝類,如果鳥類中有個(gè)方法有個(gè)方法fly,企鵝自然也繼承了,企鵝自然也繼承了這個(gè)方法,這個(gè)方法,可企可企鵝不能鵝不能飛,飛,于于是我是我們?cè)谄簌Z的類中覆蓋

15、了們?cè)谄簌Z的類中覆蓋了fly方法,告訴方法,告訴方法的調(diào)用者:企鵝是不會(huì)飛的。這完全符合常理。但是,這違反了方法的調(diào)用者:企鵝是不會(huì)飛的。這完全符合常理。但是,這違反了LSP,企鵝是鳥的子類,可是企鵝卻不能飛,企鵝是鳥的子類,可是企鵝卻不能飛?。ù耍。ù颂幍奶幍摹傍B鳥”不不再是生再是生物學(xué)中的物學(xué)中的鳥,鳥,它是軟件中的一個(gè)類、一個(gè)抽它是軟件中的一個(gè)類、一個(gè)抽象)象) 有人會(huì)說(shuō),企鵝不能飛很正常啊,只要在使用這個(gè)類的客戶代碼中有人會(huì)說(shuō),企鵝不能飛很正常啊,只要在使用這個(gè)類的客戶代碼中加一句判斷就行了。但是,客戶代加一句判斷就行了。但是,客戶代碼和碼和“企鵝企鵝”的代碼很有可能不是同的代碼很有可

16、能不是同時(shí)設(shè)計(jì)的時(shí)設(shè)計(jì)的,在當(dāng)今軟件外包一層又一層的開發(fā)模式下,你甚,在當(dāng)今軟件外包一層又一層的開發(fā)模式下,你甚至根本不知至根本不知道兩個(gè)模塊的原產(chǎn)地是哪里,也就談不道兩個(gè)模塊的原產(chǎn)地是哪里,也就談不上去修改客戶代碼了。上去修改客戶代碼了??蛻舫炭蛻舫绦蛐蚝芸赡苁沁z留系統(tǒng)的一部分,很很可能是遺留系統(tǒng)的一部分,很可能已經(jīng)不再維護(hù),如果因?yàn)樵O(shè)計(jì)出這可能已經(jīng)不再維護(hù),如果因?yàn)樵O(shè)計(jì)出這么一個(gè)么一個(gè)“企鵝企鵝”而導(dǎo)致必須修改客戶代碼,誰(shuí)應(yīng)該承擔(dān)這部分責(zé)任呢而導(dǎo)致必須修改客戶代碼,誰(shuí)應(yīng)該承擔(dān)這部分責(zé)任呢?修修改客戶代改客戶代碼直碼直接違反接違反了開閉原了開閉原則。所以,違則。所以,違反反里氏代換原里氏代換

17、原則則將將使既有使既有的設(shè)計(jì)不能封閉!的設(shè)計(jì)不能封閉! 一一般來(lái)講,般來(lái)講, 假設(shè)假設(shè) 有一功能有一功能P1,由,由A類完成?,F(xiàn)需要將功能類完成。現(xiàn)需要將功能P1進(jìn)行擴(kuò)進(jìn)行擴(kuò)展,擴(kuò)展后的功能為展,擴(kuò)展后的功能為P,其中,其中P由原有功能由原有功能P1與新功能與新功能P2組成。新功能組成。新功能P由類由類A的子類的子類B來(lái)完成,則子類來(lái)完成,則子類B在完成新功能在完成新功能P2的同時(shí),有可能會(huì)導(dǎo)致的同時(shí),有可能會(huì)導(dǎo)致原有功能原有功能P1發(fā)生故障(有可能改寫了原來(lái)的方法)。發(fā)生故障(有可能改寫了原來(lái)的方法)。2. 解解決方?jīng)Q方案案 當(dāng)當(dāng)使用繼承時(shí),遵循里氏替換原則。類使用繼承時(shí),遵循里氏替換原則。

18、類B繼承類繼承類A時(shí),除添加新的方時(shí),除添加新的方法完成新增功能法完成新增功能P2外,外,盡量不要盡量不要重寫父類重寫父類A的方的方法。法。 繼承包含這樣一層含義:父類中凡是已經(jīng)實(shí)現(xiàn)好的方法(相對(duì)于抽繼承包含這樣一層含義:父類中凡是已經(jīng)實(shí)現(xiàn)好的方法(相對(duì)于抽象方法而言),實(shí)際上是在設(shè)定一系列的規(guī)范和契約,雖然它不強(qiáng)制要象方法而言),實(shí)際上是在設(shè)定一系列的規(guī)范和契約,雖然它不強(qiáng)制要求所有的子類必須遵從這些契約,但是如果子類對(duì)這些非抽象方法任意求所有的子類必須遵從這些契約,但是如果子類對(duì)這些非抽象方法任意修改,就會(huì)對(duì)整個(gè)繼承體系造成破壞。而里氏替換原則就是表達(dá)了這一修改,就會(huì)對(duì)整個(gè)繼承體系造成破壞

19、。而里氏替換原則就是表達(dá)了這一層含義。層含義。 六、接六、接口隔離原口隔離原則(補(bǔ)充)則(補(bǔ)充)接口隔離原則接口隔離原則(Interface Segregation Principles, 縮稱縮稱ISP)1. 核心思想核心思想 客客戶端不應(yīng)該依賴它不需要的接口;一個(gè)類對(duì)另一個(gè)類的依賴戶端不應(yīng)該依賴它不需要的接口;一個(gè)類對(duì)另一個(gè)類的依賴應(yīng)該建立在最小的接口上。應(yīng)該建立在最小的接口上。 具體來(lái)說(shuō),具體來(lái)說(shuō),要要為各個(gè)類建立專用的接口為各個(gè)類建立專用的接口,而不要試圖去建立一,而不要試圖去建立一個(gè)很龐大的接口供所有依賴它的類去調(diào)用。在程序設(shè)計(jì)中,依賴幾個(gè)很龐大的接口供所有依賴它的類去調(diào)用。在程序設(shè)計(jì)中,依賴幾個(gè)專用的接口要比依賴一個(gè)綜合的接口更靈活。接口是設(shè)計(jì)時(shí)對(duì)外個(gè)專用的接口要比依賴一個(gè)綜合的接口更靈活。接口是設(shè)計(jì)時(shí)對(duì)外部設(shè)定的部設(shè)定的“契約契約”,通過(guò)分散定義多個(gè)接口,可以預(yù)防外來(lái)變更的,通

溫馨提示

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

評(píng)論

0/150

提交評(píng)論