版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、04 | 理論一:當(dāng)談?wù)撁嫦驅(qū)ο蟮臅r候,我們到底在談?wù)撌裁矗?019-11-11 王爭設(shè)計模式之美進入課程講述:馮永吉時長 14:38 大小 13.41M考慮到各個水平層次的同學(xué),并且保證專欄內(nèi)容的系統(tǒng)性、全面性,我會循序漸進地講解跟設(shè)計模式相關(guān)的所有內(nèi)容。所以,專欄正文的第一個模塊,我會講一些設(shè)計原則、設(shè)計思 想,比如,面向?qū)ο笤O(shè)計思想、經(jīng)典設(shè)計原則以及重構(gòu)相關(guān)的知識,為之后學(xué)習(xí)設(shè)計模式做 鋪墊。在第一個模塊中,我們又首先會講到面向?qū)ο笙嚓P(guān)的理論知識。提到面向?qū)ο?,我相信很多人都不陌生,隨口都可以說出面向?qū)ο蟮乃拇筇匦裕悍庋b、抽象、繼承、多態(tài)。實際上,面向?qū)ο筮@個概念包含的內(nèi)容還不止這些。所
2、以,今天我打算花一節(jié)課的時間,先大概跟你聊一下,當(dāng)我們談?wù)撁嫦驅(qū)ο蟮臅r候,經(jīng)常會談到的一些概念和知識點,為學(xué)習(xí)后面的幾節(jié)更加細化的內(nèi)容做一個鋪墊。 下載APP 特別說明一下,對于今天講到的概念和知識點,大部分我都是點到為止,并沒有展開詳細講解。如果你看了之后,對某個概念和知識點還不是很清楚,那也沒有關(guān)系。在后面的幾節(jié)課 中,我會花更多的篇幅,對今天講到的每個概念和知識點,結(jié)合具體的例子,一一做詳細的 講解。什么是面向?qū)ο缶幊毯兔嫦驅(qū)ο缶幊陶Z言?面向?qū)ο缶幊痰挠⑽目s寫是 OOP,全稱是 Object Oriented Programming。對應(yīng)地,面向?qū)ο缶幊陶Z言的英文縮寫是 OOPL,全稱是
3、 Object Oriented ProgrammingLanguage。面向?qū)ο缶幊讨杏袃蓚€非常重要、非?;A(chǔ)的概念,那就是類(class)和對象(object)。這兩個概念最早出現(xiàn)在 1960 年,在 Simula 這種編程語言中第一次使用。而面向?qū)ο缶幊踢@個概念第一次被使用是在 Smalltalk 這種編程語言中。Smalltalk 被認(rèn)為是第一個真正意義上的面向?qū)ο缶幊陶Z言。1980 年左右,C+ 的出現(xiàn),帶動了面向?qū)ο缶幊痰牧餍?,也使得面向?qū)ο缶幊瘫辉絹碓蕉嗟娜苏J(rèn)可。直到今天,如果不按照嚴(yán)格的定義來說,大部分編程語言都是面向?qū)ο缶幊陶Z 言,比如 Java、C+、Go、Python、C
4、#、Ruby、JavaScript、Objective-C、Scala、PHP、Perl 等等。除此之外,大部分程序員在開發(fā)項目的時候,都是基于面向?qū)ο缶幊陶Z言進行的面向?qū)ο缶幊?。以上是面向?qū)ο缶幊痰拇蟾虐l(fā)展歷史。在剛剛的描述中,我著重提到了兩個概念,面向?qū)ο缶幊毯兔嫦驅(qū)ο缶幊陶Z言。那究竟什么是面向?qū)ο缶幊??什么語言才算是面向?qū)ο缶幊陶Z言呢?如果非得給出一個定義的話,我覺得可以用下面兩句話來概括。面向?qū)ο缶幊淌且环N編程范式或編程風(fēng)格。它以類或?qū)ο笞鳛榻M織代碼的基本單元,并將封裝、抽象、繼承、多態(tài)四個特性,作為代碼設(shè)計和實現(xiàn)的基石 。面向?qū)ο缶幊陶Z言是支持類或?qū)ο蟮恼Z法機制,并有現(xiàn)成的語法機制,
5、能方便地實現(xiàn)面向?qū)ο缶幊趟拇筇匦裕ǚ庋b、抽象、繼承、多態(tài))的編程語言。一般來講, 面向?qū)ο缶幊潭际峭ㄟ^使用面向?qū)ο缶幊陶Z言來進行的,但是,不用面向?qū)ο缶幊陶Z言,我們照樣可以進行面向?qū)ο缶幊?。反過來講,即便我們使用面向?qū)ο缶幊陶Z言,寫出來的代碼也不一定是面向?qū)ο缶幊田L(fēng)格的,也有可能是面向過程編程風(fēng)格的。這里聽起來是不是有點繞?不過沒關(guān)系,我們在后面的第 7 節(jié)課中,會詳細講解這個問題。除此之外,從定義中,我們還可以發(fā)現(xiàn),理解面向?qū)ο缶幊碳懊嫦驅(qū)ο缶幊陶Z言兩個概念, 其中最關(guān)鍵的一點就是理解面向?qū)ο缶幊痰乃拇筇匦?。這四大特性分別是:封裝、抽象、繼承、多態(tài)。不過,關(guān)于面向?qū)ο缶幊痰奶匦?,也有另外一種
6、說法,那就是只包含三大特性: 封裝、繼承、多態(tài),不包含抽象。為什么會有這種分歧呢?抽象為什么可以排除在面向?qū)ο缶幊烫匦灾饽??關(guān)于這個問題,在下一節(jié)課詳細講解這四大特性的時候,我還會再拿出來說一下。不過,話說回來,實際上,我們沒必要糾結(jié)到底是四大特性還是三大特性,關(guān)鍵還是理解每種特性講的是什么內(nèi)容、存在的意義以及能解決什么問題。而且,在技術(shù)圈里,封裝、抽象、繼承、多態(tài)也并不是固定地被叫作“四大特性”(features),也有人稱它們?yōu)槊嫦驅(qū)ο缶幊痰乃拇蟾拍睿╟oncepts)、四大基石(cornerstones)、四大基礎(chǔ)(fundamentals)、四大支柱(pillars)等等。你也發(fā)現(xiàn)了
7、吧,叫法挺混亂的。不過,叫什么并不重要。我們只需要知道,這是前人進行面向?qū)ο缶幊踢^程中總結(jié)出來的、能讓我們更容易地實現(xiàn)各種設(shè)計思路的幾個編程套路,這就夠了。在之后的課程講解中,我統(tǒng)一把它們叫作“四大特性”。如何判定某編程語言是否是面向?qū)ο缶幊陶Z言?如果你足夠細心,你可能已經(jīng)留意到,在我剛剛的講解中,我提到,“如果不按照嚴(yán)格的定義來說,大部分編程語言都是面向?qū)ο缶幊陶Z言”。為什么要加上“如果不按照嚴(yán)格的定 義”這個前提呢?那是因為,如果按照剛剛我們給出的嚴(yán)格的面向?qū)ο缶幊陶Z言的定義,前面提到的有些編程語言,并不是嚴(yán)格意義上的面向?qū)ο缶幊陶Z言,比如JavaScript,它不支持封裝和繼承特性,按照
8、嚴(yán)格的定義,它不算是面向?qū)ο缶幊陶Z言,但在某種意義上,它又可以算得上是一種面向?qū)ο缶幊陶Z言。我為什么這么說呢?到底該如何判斷一個編程語言是否是面向?qū)ο缶幊陶Z言呢?還記得我們前面給出的面向?qū)ο缶幊碳懊嫦驅(qū)ο缶幊陶Z言的定義嗎?如果忘記了,你可以先翻到上面回顧一下。不過,我必須坦誠告訴你,那個定義是我自己給出的。實際上,對于什么是面向?qū)ο缶幊?、什么是面向?qū)ο缶幊陶Z言,并沒有一個官方的、統(tǒng)一的定義。而且,從1960 年,也就是 60 年前面向?qū)ο缶幊陶Q生開始,這兩個概念就在不停地演化,所以,也無法給出一個明確的定義,也沒有必要給出一個明確定義。實際上,面向?qū)ο缶幊虖淖置嫔?,按照最簡單、最原始的方式來?/p>
9、解,就是將對象或類作為代碼組織的基本單元,來進行編程的一種編程范式或者編程風(fēng)格,并不一定需要封裝、抽 象、繼承、多態(tài)這四大特性的支持。但是,在進行面向?qū)ο缶幊痰倪^程中,人們不停地總結(jié) 發(fā)現(xiàn),有了這四大特性,我們就能更容易地實現(xiàn)各種面向?qū)ο蟮拇a設(shè)計思路。比如,我們在面向?qū)ο缶幊痰倪^程中,經(jīng)常會遇到 is-a 這種類關(guān)系(比如狗是一種動物),而繼承這個特性就能很好地支持這種 is-a 的代碼設(shè)計思路,并且解決代碼復(fù)用的問題,所以,繼承就成了面向?qū)ο缶幊痰乃拇筇匦灾?。但是隨著編程語言的不斷迭代、演化,人們發(fā)現(xiàn)繼承這種特性容易造成層次不清、代碼混亂,所以,很多編程語言在設(shè)計的時候就開始摒棄繼承特性
10、,比如 Go 語言。但是,我們并不能因為它摒棄了繼承特性,就一刀切地認(rèn)為它不是面向?qū)ο缶幊陶Z言了。實際上,我個人覺得,只要某種編程語言支持類或?qū)ο蟮恼Z法概念,并且以此作為組織代碼的基本單元,那就可以被粗略地認(rèn)為它就是面向?qū)ο缶幊陶Z言了。至于是否有現(xiàn)成的語法機制,完全地支持了面向?qū)ο缶幊痰乃拇筇匦?、是否對四大特性有所取舍和?yōu)化,可以不作為判定的標(biāo)準(zhǔn)。基于此,我們才有了前面的說法,按照嚴(yán)格的定義,很多語言都不能算得上面向?qū)ο缶幊陶Z言,但按照不嚴(yán)格的定義來講,現(xiàn)在流行的大部分編程語言都是面向?qū)ο缶幊陶Z言。所以,多說一句,關(guān)于這個問題,我們一定不要過于學(xué)院派,非要給面向?qū)ο缶幊?、面向?qū)ο缶幊陶Z言下個死
11、定義,非得對某種語言是否是面向?qū)ο缶幊陶Z言爭個一清二白,這樣做意義不大。什么是面向?qū)ο蠓治龊兔嫦驅(qū)ο笤O(shè)計?前面我們講了面向?qū)ο缶幊蹋∣OP),實際上,跟面向?qū)ο缶幊探?jīng)常放到一塊兒來講的還有另外兩個概念,那就是面向?qū)ο蠓治觯∣OA)和面向?qū)ο笤O(shè)計(OOD)。面向?qū)ο蠓治鲇⑽目s寫是 OOA,全稱是 Object Oriented Analysis;面向?qū)ο笤O(shè)計的英文縮寫是OOD, 全稱是 Object Oriented Design。OOA、OOD、OOP 三個連在一起就是面向?qū)ο蠓治?、設(shè)計、編程(實現(xiàn)),正好是面向?qū)ο筌浖_發(fā)要經(jīng)歷的三個階段。關(guān)于什么是面向?qū)ο缶幊蹋覀兦懊嬉呀?jīng)講過了。我們現(xiàn)在
12、再來講一下,什么是面向?qū)ο蠓治龊驮O(shè)計。這兩個概念相對來說要簡單一些。面向?qū)ο蠓治雠c設(shè)計中的“分析”和“設(shè)計”這兩個詞,我們完全可以從字面上去理解,不需要過度解讀,簡單類比軟件開發(fā)中的需求分析、系統(tǒng)設(shè)計即可。不過,你可能會說,那為啥前面還加了個修飾詞“面向?qū)ο蟆蹦兀?有什么特殊的意義嗎?之所以在前面加“面向?qū)ο蟆边@幾個字,是因為我們是圍繞著對象或類來做需求分析和設(shè)計的。分析和設(shè)計兩個階段最終的產(chǎn)出是類的設(shè)計,包括程序被拆解為哪些類,每個類有哪些屬性方法,類與類之間如何交互等等。它們比其他的分析和設(shè)計更加具體、更加落地、更加貼近編碼,更能夠順利地過渡到面向?qū)ο缶幊汰h(huán)節(jié)。這也是面向?qū)ο蠓治龊驮O(shè)計,與
13、其他分析和設(shè)計最大的不同點。看到這里,你可能會問,那面向?qū)ο蠓治?、設(shè)計、編程到底都負(fù)責(zé)做哪些工作呢?簡單點講,面向?qū)ο蠓治鼍褪且闱宄鍪裁?,面向?qū)ο笤O(shè)計就是要搞清楚怎么做,面向?qū)ο缶幊叹褪菍⒎治龊驮O(shè)計的的結(jié)果翻譯成代碼的過程。今天,我們只是簡單介紹一下概念,不展開詳細講解。在后面的面向?qū)ο髮崙?zhàn)環(huán)節(jié)中,我會用兩節(jié)課的時間,通過一個實際例子,詳細講解如何進行面向?qū)ο蠓治觥⒃O(shè)計和編程。什么是 UML?我們是否需要 UML?講到面向?qū)ο蠓治觥⒃O(shè)計、編程,我們就不得不提到另外一個概念,那就是 UML(UnifiedModel Language),統(tǒng)一建模語言。很多講解面向?qū)ο蠡蛟O(shè)計模式的書籍,常用它來
14、畫圖表達面向?qū)ο蠡蛟O(shè)計模式的設(shè)計思路。實際上,UML 是一種非常復(fù)雜的東西。它不僅僅包含我們常提到類圖,還有用例圖、順序圖、活動圖、狀態(tài)圖、組件圖等。在我看來,即便僅僅使用類圖,學(xué)習(xí)成本也是很高的。就單說類之間的關(guān)系,UML 就定義了很多種,比如泛化、實現(xiàn)、關(guān)聯(lián)、聚合、組合、依賴等。要想完全掌握,并且熟練運用這些類之間的關(guān)系,來畫 UML 類圖,肯定要花很多的學(xué)習(xí)精力。而且,UML 作為一種溝通工具,即便你能完全按照 UML 規(guī)范來畫類圖,可對于不熟悉的人來說,看懂的成本也還是很高的。所以,從我的開發(fā)經(jīng)驗來說,UML 在互聯(lián)網(wǎng)公司的項目開發(fā)中,用處可能并不大。為了文檔化軟件設(shè)計或者方便討論軟件
15、設(shè)計,大部分情況下,我們隨手畫個不那么規(guī)范的草圖,能夠達意,方便溝通就夠了,而完全按照 UML 規(guī)范來將草圖標(biāo)準(zhǔn)化,所付出的代價是不值得的。所以,我這里特別說明一下,專欄中的很多類圖我并沒有完全遵守 UML 的規(guī)范標(biāo)準(zhǔn)。為了兼顧圖的表達能力和你的學(xué)習(xí)成本,我對 UML 類圖規(guī)范做了簡化,并配上了詳細的文字解釋,力圖讓你一眼就能看懂,而非適得其反,讓圖加重你的學(xué)習(xí)成本。畢竟,我們的專欄并不是一個講方法論的教程,專欄中的所有類圖,本質(zhì)是讓你更清晰地理解設(shè)計。重點回顧今天的內(nèi)容講完了,我們來一起總結(jié)回顧一下,你需要重點掌握的幾個概念和知識點。1. 什么是面向?qū)ο缶幊蹋棵嫦驅(qū)ο缶幊淌且环N編程范式或編程
16、風(fēng)格。它以類或?qū)ο笞鳛榻M織代碼的基本單元,并將封裝、抽象、繼承、多態(tài)四個特性,作為代碼設(shè)計和實現(xiàn)的基石 。2. 什么是面向?qū)ο缶幊陶Z言?面向?qū)ο缶幊陶Z言是支持類或?qū)ο蟮恼Z法機制,并有現(xiàn)成的語法機制,能方便地實現(xiàn)面向?qū)ο缶幊趟拇筇匦裕ǚ庋b、抽象、繼承、多態(tài))的編程語言。3. 如何判定一個編程語言是否是面向?qū)ο缶幊陶Z言?如果按照嚴(yán)格的的定義,需要有現(xiàn)成的語法支持類、對象、四大特性才能叫作面向?qū)ο缶幊陶Z言。如果放寬要求的話,只要某種編程語言支持類、對象語法機制,那基本上就可以說這種編程語言是面向?qū)ο缶幊陶Z言了,不一定非得要求具有所有的四大特性。4. 面向?qū)ο缶幊毯兔嫦驅(qū)ο缶幊陶Z言之間有何關(guān)系?面向?qū)?/p>
17、象編程一般使用面向?qū)ο缶幊陶Z言來進行,但是,不用面向?qū)ο缶幊陶Z言,我們照樣可以進行面向?qū)ο缶幊獭7催^來講,即便我們使用面向?qū)ο缶幊陶Z言,寫出來的代碼也不一定是面向?qū)ο缶幊田L(fēng)格的,也有可能是面向過程編程風(fēng)格的。5. 什么是面向?qū)ο蠓治龊兔嫦驅(qū)ο笤O(shè)計?簡單點講,面向?qū)ο蠓治鼍褪且闱宄鍪裁?,面向?qū)ο笤O(shè)計就是要搞清楚怎么做。兩個階段最終的產(chǎn)出是類的設(shè)計,包括程序被拆解為哪些類,每個類有哪些屬性方法、類與類之間如何交互等等。課堂討論今天我們要討論的話題有兩個:1. 在文章中,我講到 UML 的學(xué)習(xí)成本很高,溝通成本也不低,不推薦在面向?qū)ο蠓治?、設(shè)計的過程中使用,對此你有何看法?2. 有關(guān)面向?qū)ο蟮母?/p>
18、念和知識點,除了我們今天講到的,你還能想到其他哪些嗎?歡迎在留言區(qū)發(fā)表你的觀點,積極參與討論。你也可以把這篇文章分享給你的朋友,邀請他一起學(xué)習(xí)。 版權(quán)歸極客邦科技所有,未經(jīng)許可不得傳播售賣。 頁面已增加防盜追蹤,如有侵權(quán)極客邦將依法追究其法律責(zé)任。上一篇03 | 面向?qū)ο蟆⒃O(shè)計原則、設(shè)計模式、編程規(guī)范、重構(gòu),這五者有何關(guān)系?精選留言 (95) 寫留王爭置頂2019-11-11在這篇文章中,“面向?qū)ο缶幊獭币辉~多義,不同的場景、語境下,解釋不同。文章中沒有點到這一點,我這里稍微補充說明一下:1. 文章前半部分,面向?qū)ο缶幊讨傅氖且环N編程風(fēng)格或者范式。2. 文章后半部分,在講到面向?qū)ο蠓治?、設(shè)計、
19、編程的時候,面向?qū)ο缶幊淌且环N行為。展開 王爭置頂2019-11-11UML中定義了類之間的關(guān)系:泛化、實現(xiàn)、關(guān)聯(lián)、聚合、組合、依賴,試問下小伙伴們, 你們都能搞清楚這幾個的區(qū)別嗎?能否準(zhǔn)確的用不同的箭頭、圖線來畫出來嗎?即便你能畫出來,團隊里的小伙伴都能看懂嗎? 不過,關(guān)于類之間的關(guān)系,我后面會在實戰(zhàn)篇中講到的,但是,我會簡化成四種關(guān)系,更好理解。展開 觀弈道人2019-11-11Uml圖可以簡化,但不要隨意畫,會導(dǎo)致專欄有失嚴(yán)謹(jǐn)性。確認(rèn)過眼神2019-11-11對于uml來說,簡單點是可以的,但是對于規(guī)范還是要有的。如果不規(guī)范,會的人看不習(xí)慣,不會的人容易被帶入誤區(qū)。想學(xué)的人,畫得再難也會
20、去看,不想學(xué)的人,畫得再簡單易懂,也不會去學(xué)。唐龍2019-11-11即便我們使用面向?qū)ο缶幊陶Z言,寫出來的代碼也不一定是面向?qū)ο缶幊田L(fēng)格的,也有可能是面向過程編程風(fēng)格的。嗯剛學(xué)C+的時候干過這事。展開 辣么大2019-11-11關(guān)于uml類圖引起了大家的廣泛討論。我同意老師的觀點,uml類圖還是太復(fù)雜了。我給大家一個鏈接。Uml類圖是不用記的。用的時候看一下cheat sheet就行。/gdhucoder/Algorithms4/blob/master/designpattern/pic/umlcheatsheet.jpg展開 daniel李2019-11-
21、11當(dāng)看到老師說uml意義不大的時候我就懵了,還好原來是指不需要按嚴(yán)格標(biāo)準(zhǔn)死磕uml。我平時在功能開發(fā)初期和后期都是用uml把我的想法可視化然后讓師兄審核,減少pr被reje ct機率。而且也容易讓別的工程師接手做功能拓展。展開 作者回復(fù): 實際上,大廠也未必都在用。比如類圖中幾種類關(guān)系,同學(xué)們有幾個能準(zhǔn)確的用不同的圖線畫出來呢?憶水寒2019-11-11UML設(shè)計的合理,新開發(fā)者也能去快速開發(fā)。關(guān)鍵還是看自己開發(fā)還是別人開發(fā)。作為學(xué)習(xí)來說,簡單的UML能表達意思即可。展開 香蕉派2號2019-11-111. 同意老師觀點,UML是提供一種規(guī)范和準(zhǔn)則,如果嚴(yán)格的按照規(guī)范來做可能過猶不及, 在時
22、間成本和規(guī)范之間必盡量要做到平衡。2. 除了以上的概念,還想到了低耦合高內(nèi)聚,模塊化,可維護性,可擴展性,可復(fù)用性, 對象的唯一性,對象的分類(是is-a還是has的關(guān)系)等。展開 黃林晴2019-11-11打卡我覺得在工作中,如果完成一個功能需要30分鐘,其實25分鐘都在思考,25分鐘在設(shè)計, 實際編碼時間只需要5分鐘,而前面25分鐘就是編碼設(shè)計3Geek_f9070f2019-11-11對于UML,我覺得同樣不要過于“學(xué)院派”,過度求其嚴(yán)謹(jǐn),而忘記使用它的目的是什么,此謂舍本逐末。畢竟它終究只是一個工具,最終能夠服務(wù)于我們的表達,方便我們的交流即可。是否要簡化,當(dāng)然也要看場景,至少對于學(xué)習(xí)
23、這門課程而言,并不需要讓其過于復(fù)雜而提高我們的學(xué)習(xí)成本。另外,我特別欣賞老師這種刪繁就簡、力求簡約和高效的風(fēng)格,或許這也是一種極客精展開 編程界的小學(xué)生2019-11-111.我覺得首先uml這東西很牛逼,很有必要去畫,但是也需要分場景,比如crud還強行畫一個出來那就是浪費時間,比如超級復(fù)雜的東西要畫,那我覺得就可以簡化,多配上文字注釋。比如需求一般,不是很復(fù)雜也不是很簡單的那種也可以好好畫一下,必要的地方配上文案描述。uml能幫助我們瞬間理解這個東西到底要做什么,流程是怎樣的,畫出來不光是現(xiàn)在看還是以后復(fù)習(xí)看,他都很香!展開 帆大肚子2019-11-11我第一次看設(shè)計模式的時候,里面的uml很是讓人頭疼,確實學(xué)習(xí)成本很大,而且我的學(xué)習(xí)重心不在uml,被迫學(xué)習(xí)uml真的很痛苦。方向2019-11-11UML在畢設(shè)時候是必須的,什么用例圖,時序圖,活動圖,非得寫上去才顯得高大上,但一直不得要領(lǐng),當(dāng)時也是網(wǎng)上搜相關(guān)的模仿著填充進去。始終認(rèn)為這種圖的目的也是為了傳達明確的設(shè)計意圖,遵循最基本的規(guī)范能夠達到看懂、意圖明確的效果就行了。展開 逍遙思2019-11-111. 基本認(rèn)同,除非某個公司內(nèi)部統(tǒng)一要求如此,才能真正降低溝通成本并攤低學(xué)習(xí)成本。沒有必須使用的場景,就不值得花時間深入2. 除了老師今天講的知識點之外,還有消
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 某著名企業(yè)五局天津項目鋁合金模板應(yīng)用案例分享
- 某著名企業(yè)競爭戰(zhàn)略與管理提升咨詢項目建議書-正略鈞策1011
- 《GB-T 40037-2021電子商務(wù)產(chǎn)品信息描述 大宗商品》專題研究報告
- 《GB-T 22114-2021牙膏用保濕劑 甘油和聚乙二醇》專題研究報告
- 《GBT 17999.6-2008 SPF雞 微生物學(xué)監(jiān)測 第6部分:SPF雞 酶聯(lián)免疫吸附試驗》專題研究報告
- 《FZT 64068-2019拒油防污機織粘合襯》專題研究報告深度
- 道路安全培訓(xùn)內(nèi)容記錄課件
- 道墟街道安全培訓(xùn)教育課件
- 2024胸骨捆扎固定系統(tǒng)注冊審查指導(dǎo)原則
- 返鄉(xiāng)下鄉(xiāng)創(chuàng)業(yè)培訓(xùn)課件
- 車位包銷合同協(xié)議模板
- 《FPC材料介紹》課件
- 員工轉(zhuǎn)崗協(xié)議書范本
- 四川省遂寧市射洪縣九年級2024-2025學(xué)年(上)期末化學(xué)試卷(含答案)
- 2025-2030中國器官芯片行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 醫(yī)院醫(yī)療保險費用審核制度
- 村衛(wèi)生室醫(yī)療質(zhì)量相關(guān)管理制度
- 非遺傳承人激勵機制探索-深度研究
- 中小學(xué)校園中匹克球推廣策略與實踐研究
- 2024年世界職業(yè)院校技能大賽高職組“體育活動設(shè)計與實施組”賽項考試題庫(含答案)
- 高中地理選擇性必修一(湘教版)期末檢測卷02(原卷版)
評論
0/150
提交評論