《邏輯架構(gòu)分析》_第1頁(yè)
《邏輯架構(gòu)分析》_第2頁(yè)
《邏輯架構(gòu)分析》_第3頁(yè)
《邏輯架構(gòu)分析》_第4頁(yè)
《邏輯架構(gòu)分析》_第5頁(yè)
已閱讀5頁(yè),還剩32頁(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、.1面向?qū)ο蠓治雠c設(shè)計(jì)邏輯架構(gòu)分析邏輯架構(gòu)分析OOA&OOD.2: RegisterenterItem(itemID, quantity): ProductCatalogspec = getProductSpec( itemID )Require-mentsBusiness ModelingDesignSample UP Artifact RelationshipsVisionGlossaryThe logical architecture is influenced by the constraints and non-functional requirements captured in

2、the Supp. Spec.Domain Model*SupplementarySpecificationUse-Case ModelRegister.makeNewSale()enterItem(.).ProductCatalog.getProductSpec(.).11class diagrams(a static view)interaction diagrams(a dynamic view)UIpackage diagramsof the logical architecture(a static view)DomainTech ServicesDesign Model.3邏輯架構(gòu)

3、(Logical architecture) 邏輯架構(gòu)是軟件類的宏觀組織結(jié)構(gòu)邏輯架構(gòu)是軟件類的宏觀組織結(jié)構(gòu) 它將軟件類組織為包(或空間)、子系統(tǒng)和層等它將軟件類組織為包(或空間)、子系統(tǒng)和層等 不同部署結(jié)構(gòu),未決定系統(tǒng)部件的物理部署不同部署結(jié)構(gòu),未決定系統(tǒng)部件的物理部署 層層(layer) 對(duì)類、包或子系統(tǒng)更為粗粒度的分組對(duì)類、包或子系統(tǒng)更為粗粒度的分組 “較高較高”層可以調(diào)用層可以調(diào)用“較低較低”層的服務(wù)層的服務(wù) 邏輯架構(gòu)并非一定組織為層,但這種方式十分普邏輯架構(gòu)并非一定組織為層,但這種方式十分普遍遍 面向?qū)ο蠓治鲋攸c(diǎn)在應(yīng)用邏輯層面向?qū)ο蠓治鲋攸c(diǎn)在應(yīng)用邏輯層.4簡(jiǎn)單分層結(jié)構(gòu) 用戶界面 應(yīng)用研

4、究邏輯和領(lǐng)域?qū)ο?技術(shù)服務(wù)DomainUISwingnot the Java Swing libraries, but our GUI classes based on SwingWebSalesPaymentsTaxesTechnical ServicesPersistenceLoggingRulesEngine.5UML包圖 用包圖描述系統(tǒng)的邏輯架構(gòu) 層可以建模為包 包圖可以組織任何事物:類,包,用例等 需要顯示包間依賴性Domain:SalesUI:WebUI:SwingSalesWebSwingUIDomainDomainUISwingSalesWeb.6分解系統(tǒng) 系統(tǒng)都需要降低復(fù)雜度

5、,應(yīng)分解成小模塊再系統(tǒng)都需要降低復(fù)雜度,應(yīng)分解成小模塊再進(jìn)行開(kāi)發(fā)進(jìn)行開(kāi)發(fā) 拆分系統(tǒng)拆分系統(tǒng)-子系統(tǒng)分層子系統(tǒng)分層 子系統(tǒng)子系統(tǒng) 子系統(tǒng)所有對(duì)象為某一主題服務(wù),相互緊密協(xié)作子系統(tǒng)所有對(duì)象為某一主題服務(wù),相互緊密協(xié)作,提供一個(gè)明顯劃定功能單元。,提供一個(gè)明顯劃定功能單元。 盡可能獨(dú)立于系統(tǒng)其他部分盡可能獨(dú)立于系統(tǒng)其他部分 對(duì)系統(tǒng)分解為子系統(tǒng)后還需要對(duì)子系統(tǒng)進(jìn)行再分對(duì)系統(tǒng)分解為子系統(tǒng)后還需要對(duì)子系統(tǒng)進(jìn)行再分層層.7準(zhǔn)則:使用層進(jìn)行設(shè)計(jì) 將軟件分層可增加軟件的健壯性將軟件分層可增加軟件的健壯性 層次化是一種概念,把軟件設(shè)計(jì)組織成類或組件的層次層次化是一種概念,把軟件設(shè)計(jì)組織成類或組件的層次/集合。集合

6、。 每一層都依據(jù)其下一層來(lái)構(gòu)建,同時(shí)為上一層提供實(shí)現(xiàn)每一層都依據(jù)其下一層來(lái)構(gòu)建,同時(shí)為上一層提供實(shí)現(xiàn)基礎(chǔ)?;A(chǔ)。 不同層的對(duì)象間存在一定的對(duì)應(yīng)關(guān)系,但每一層的對(duì)象不同層的對(duì)象間存在一定的對(duì)應(yīng)關(guān)系,但每一層的對(duì)象都互相獨(dú)立的都互相獨(dú)立的 上層的對(duì)象了解其下層的對(duì)象,但不了解其上面各層上層的對(duì)象了解其下層的對(duì)象,但不了解其上面各層同一層間是否允許協(xié)作?同一層間是否允許協(xié)作?.8分層優(yōu)點(diǎn) 好的分層體系結(jié)構(gòu)使系統(tǒng)易于擴(kuò)展和維護(hù)好的分層體系結(jié)構(gòu)使系統(tǒng)易于擴(kuò)展和維護(hù) 做到關(guān)系分離、高級(jí)服務(wù)和低級(jí)服務(wù)分離、特定于應(yīng)用做到關(guān)系分離、高級(jí)服務(wù)和低級(jí)服務(wù)分離、特定于應(yīng)用的服務(wù)與一般性服務(wù)分離的服務(wù)與一般性服務(wù)分離

7、 對(duì)某一特定層進(jìn)行修改而不會(huì)影響到任何其他層對(duì)某一特定層進(jìn)行修改而不會(huì)影響到任何其他層 層是模塊化的,可以重寫(xiě)某一層,或是整個(gè)替換某一層層是模塊化的,可以重寫(xiě)某一層,或是整個(gè)替換某一層,只要接口不變,系統(tǒng)其他層次不受影響。這樣,某些,只要接口不變,系統(tǒng)其他層次不受影響。這樣,某些層能夠用新的實(shí)現(xiàn)替換層能夠用新的實(shí)現(xiàn)替換 在各層之間限制消息流動(dòng),減少層次耦合,增加移在各層之間限制消息流動(dòng),減少層次耦合,增加移植性植性 某些層可以分布式實(shí)現(xiàn)某些層可以分布式實(shí)現(xiàn) 利于在中間層實(shí)施安全特性利于在中間層實(shí)施安全特性 通過(guò)邏輯劃分,有助于團(tuán)隊(duì)開(kāi)發(fā)通過(guò)邏輯劃分,有助于團(tuán)隊(duì)開(kāi)發(fā).9準(zhǔn)則:內(nèi)聚職責(zé) 同一層的對(duì)象

8、職責(zé)緊密關(guān)聯(lián) 不同層中對(duì)象的職責(zé)不混淆 如UI對(duì)象不處理應(yīng)用邏輯UI(AKA Presentation, View)Application(AKA Workflow, Process,Mediation, App Controller)Domain(AKA Business, Application Logic, Model)Technical Services(AKA Technical Infrastructure, High-level Technical Services)Foundation(AKA Core Services, Base Services,Low-level Tec

9、hnical Services/Infrastructure)width implies range of applicability GUI windowsreportsspeech interfaceHTML, XML, XSLT, JSP, Javascript, . handles presentation layer requestsworkflowsession statewindow/page transitionsconsolidation/transformation of disparate data for presentation handles application

10、 layer requestsimplementation of domain rulesdomain services (POS, Inventory)- services may be used by just one application, but there is also the possibility of multi-application services (relatively) high-level technical services and frameworks Persistence, Securitylow-level technical services, ut

11、ilities, and frameworksdata structures, threads, math, file, DB, and network I/Omoreapp specificdependencyBusiness Infrastructure(AKA Low-level Business Services)very general low-level business services used in many business domainsCurrencyConverter.10層、子系統(tǒng)與代碼組織 Java包將層或子系統(tǒng)的名稱作為其名稱的一部分/-UI層com.mycom

12、pany.nextgen.ui.swing/-領(lǐng)域?qū)觕om.mycompany.nextgen.domain.sales/-技術(shù)服務(wù)層com.mycompany.service.persistence/基礎(chǔ)層 支持多項(xiàng)目的復(fù)用,避免出現(xiàn)特定于應(yīng)用的限定符com.mycompany.util.11領(lǐng)域?qū)优c應(yīng)用邏輯層 領(lǐng)域?qū)釉O(shè)計(jì)中: 面向?qū)ο筇岢褂妙愃朴谡鎸?shí)世界的領(lǐng)域概念創(chuàng)建軟件對(duì)象,而不是隨便一個(gè)類。 然后為其分配相應(yīng)邏輯職責(zé) 如真實(shí)世界POS具有銷售和支付功能,在軟件中創(chuàng)建Sale和Payment類。 利用來(lái)自領(lǐng)域模型的靈感創(chuàng)建領(lǐng)域?qū)?,可以獲得現(xiàn)實(shí)世界與軟件設(shè)計(jì)之間的低表示差異 .12 利用

13、領(lǐng)域模式的靈感創(chuàng)建領(lǐng)域?qū)覲aymentamountSaledatetimePays-forPaymentamount: MoneygetBalance(): MoneySaledate: DatestartTime: TimegetTotal(): Money. . .Pays-forUP Domain ModelStakeholders view of the noteworthy concepts in the domain.Domain layer of the architecture in the UP Design ModelThe object-oriented develope

14、r has taken inspiration from the real world domain in creating software classes. Therefore, the representational gap between how stakeholders conceive the domain, and its representation in software, has been lowered.1111A Payment in the Domain Model is a concept, but a Payment in the Design Model is

15、 a software class. They are not the same thing, but the former inspired the naming and definition of the latter.This reduces the representational gap.This is one of the big ideas in object technology.inspires objects and names in.13層和區(qū) 層是系統(tǒng)的邏輯層,表示對(duì)系統(tǒng)在垂直方向上的劃分 分區(qū)則表示對(duì)層在水平方向進(jìn)行劃分(子系統(tǒng)劃分)PersistenceSecuri

16、tyLoggingTechnical ServicesPOSInventoryTaxDomainVertical LayersHorizontal Partitions.14 不要將外部資源表示為最底層 外部資源是物理構(gòu)件.15準(zhǔn)則:模型-視圖分離原則 不要將非UI對(duì)象直接與UI對(duì)象連接或耦合 不要在UI對(duì)象方法中加入應(yīng)用邏輯 優(yōu)點(diǎn): 支持內(nèi)聚的模型定義 允許對(duì)模型和用戶界面層分別進(jìn)行開(kāi)發(fā) 使界面的需求變更對(duì)領(lǐng)域?qū)佑绊懽钚』?允許新視圖能方便的連接到現(xiàn)有的領(lǐng)域?qū)由?允許對(duì)同一模型有多個(gè)視圖 允許模型層的運(yùn)行不依賴于用戶界面層.16SSD、系統(tǒng)操作和層間聯(lián)系DomainUISwingProces

17、sSaleFrame.RegistermakeNewSale()enterItem().: CashiermakeNewSale()enterItem()endSale()makeNewSale()enterItem()endSale()enterItem(id, quantity):System: CashierendSale()description, totalmakeNewSale()the system operations handled by the system in an SSD represent the operation calls on the Application

18、 or Domain layer from the UI layerSSD描述系統(tǒng)操作,但隱藏了特定的描述系統(tǒng)操作,但隱藏了特定的UI對(duì)象。對(duì)象。.17POS的部分邏輯架構(gòu)Log4JTechnical ServicesDomainUIPricingPricingStrategyFactoryTextProcessSaleConsoleused in quick experimentsPersistenceDBFacadeinterfaceISalePricingStrategyTaxesinterfaceITaxCalculatorAdapterServicesFactorySalesRegi

19、sterSaleSwingProcessSaleFramePaymentsCreditPaymentinterfaceICreditAuthorizationServiceAdapterServiceAccessInventoryinterfaceIInventoryAdapterJessA general purpose third-party rules engine. POSRuleEnginePOSRuleEngineFacadeSOAPnot the Java Swing libraries, but our GUI classes based on Swing還未引入單獨(dú)的應(yīng)還未引

20、入單獨(dú)的應(yīng)用層用層.18層、包間的耦合Log4JTechnical ServicesDomainUIPricingPersistenceDBFacadeTaxesinterfaceITaxCalculatorAdapterServicesFactorySalesRegisterSaleSwingProcessSaleFramePaymentsCreditPaymentinterfaceICreditAuthorizationServiceAdapterServiceAccessInventoryinterfaceIInventoryAdapterJessPOSRuleEnginePOSRule

21、EngineFacadeSOAP依賴線表示包或依賴線表示包或包內(nèi)類型之間的包內(nèi)類型之間的耦合耦合依賴線可以由一依賴線可以由一個(gè)包發(fā)出,不是個(gè)包發(fā)出,不是某個(gè)特定的類某個(gè)特定的類顯示系統(tǒng)的靜態(tài)顯示系統(tǒng)的靜態(tài)信息信息.19 隱藏所有類,只關(guān)注于包與包之間的耦合Log4JTechnical ServicesDomainUIJessPersistencePOSRuleEngineInventoryPaymentsServiceAccessPricingSalesTextSwingSOAP.20跨層間的交互圖: Domain:Sales:Register:Cashier: UI:Swing:Proces

22、sSaleJFrameenterItem(id, qty)1: Tech-Services:Persistence:Persistence-Facadedesc = getProductDesc(id)x = isInvalid(lineItem, sale)desc = getObject(.,id)1: Domain:POSRule-Engine:POSRule-EngineFacadeenterItem(id, qty)s : Domain:Sales:Sale: Domain:Products:ProductCatalogmakeLineItem(desc, qty)subsystem

23、: Tech-Services:JesssomeJessCalls(lineItem, sale)Points of crossing interesting boundaries or layers. These are especially noteworthy for people who need to understand the system, and thus are highlighted in this diagram. This diagram supports communicating the logical view of the architecture (a UP

24、 term) because it emphasizes architecturally significant information. UML notation: Note that a subsytem can be modeled as an object in the UML. This is useful in this case where I dont know or want to describe the details of how the Jess rule engine works, but just want to show collaboration with i

25、t.UML notation: UML path name to indicate packagingonPropertyEvent(s, sale.total, total)增加包的信息,突出架構(gòu)意義的交互。.21層與包間協(xié)作通信的模式 架構(gòu)設(shè)計(jì)側(cè)重于指導(dǎo)大尺度的分塊架構(gòu)設(shè)計(jì)側(cè)重于指導(dǎo)大尺度的分塊 對(duì)于跨越層和包邊界的交互的微觀連接設(shè)計(jì)對(duì)于跨越層和包邊界的交互的微觀連接設(shè)計(jì) 外觀外觀 控制器控制器 觀察者觀察者 等等.22簡(jiǎn)單包和子系統(tǒng)簡(jiǎn)單包和子系統(tǒng) 兩者都具有行為和接口兩者都具有行為和接口 簡(jiǎn)單包,單獨(dú)承擔(dān)職責(zé),簡(jiǎn)單職責(zé)簡(jiǎn)單包,單獨(dú)承擔(dān)職責(zé),簡(jiǎn)單職責(zé),如如pricing(定價(jià))(定價(jià)) 子

26、系統(tǒng),有內(nèi)聚職責(zé)的獨(dú)立模塊子系統(tǒng),有內(nèi)聚職責(zé)的獨(dú)立模塊.23外觀(Faade) 對(duì)于子系統(tǒng)的服務(wù)定義一對(duì)于子系統(tǒng)的服務(wù)定義一個(gè)對(duì)外的公共的外觀對(duì)象個(gè)對(duì)外的公共的外觀對(duì)象 客戶端客戶端(使用子系統(tǒng)的客戶使用子系統(tǒng)的客戶)不與子系統(tǒng)內(nèi)部的構(gòu)件)不與子系統(tǒng)內(nèi)部的構(gòu)件交互交互 外觀對(duì)象只對(duì)外暴露少數(shù)外觀對(duì)象只對(duì)外暴露少數(shù)高層操作,提供粗粒度服高層操作,提供粗粒度服務(wù)務(wù) 外觀只是子系統(tǒng)對(duì)象的統(tǒng)外觀只是子系統(tǒng)對(duì)象的統(tǒng)一或中介,不直接執(zhí)行任一或中介,不直接執(zhí)行任務(wù)務(wù) 但但通用的第三方子系統(tǒng)通用的第三方子系統(tǒng)通通常暴露細(xì)粒度的操作常暴露細(xì)粒度的操作Log4JTechnical ServicesDomainUI

27、PersistenceDBFacadeSalesRegisterSaleSwingProcessSaleFrameJessSOAPfor applications with only a few system operations, perhaps only one object acts as the facade into the layerThe Technical Services layer typically exposes many interfaces-at least one per subsystem.24會(huì)話外觀和應(yīng)用層 當(dāng)存在許多系統(tǒng)操作時(shí),支持多個(gè)用例時(shí),在層間采用多

28、個(gè)對(duì)象作為中介 通常會(huì)引入應(yīng)用層的對(duì)象來(lái)維護(hù)用例操作的會(huì)話狀態(tài),每個(gè)會(huì)話實(shí)例表示一個(gè)客戶的會(huì)話ApplicationDomainUISalesRegisterSaleSwingProcessSaleJFrameApplication session facade objects that maintain session state and control workflow related to some work-often by use case.ProcessSaleSessionFacadeProcessRentalSessionFacadeHandleReturnsSessionFa

29、cadeProcessRentalJFrame.RentalsRental.25控制器 系統(tǒng)有許多用例,通系統(tǒng)有許多用例,通常在常在UI層和領(lǐng)域?qū)又畬雍皖I(lǐng)域?qū)又g增加控制間增加控制 控制器對(duì)象可以維護(hù)控制器對(duì)象可以維護(hù)用例操作的用例操作的會(huì)話狀態(tài)會(huì)話狀態(tài),控制其工作相關(guān)的,控制其工作相關(guān)的工作流工作流ApplicationDomainUISwingProcessSaleFrameGRASP Controller pattern suggests these common choices of objects to handle system operation requests.Registe

30、rmakeNewSaleenterItem.ProcessSaleSessionFacademakeNewSaleenterItem.OR.26層間的向上協(xié)作 分層系統(tǒng)中,消息通常從頂層流向底層,分層系統(tǒng)中,消息通常從頂層流向底層, 頁(yè)面信息的刷新采用輪詢(頁(yè)面信息的刷新采用輪詢(polling)或從上面拉)或從上面拉(pull-from-above) 當(dāng)?shù)讓酉蛏蠈觽魉拖⑼ǔJ褂脧南旅嫱飘?dāng)?shù)讓酉蛏蠈觽魉拖⑼ǔJ褂脧南旅嫱?push-from-below) 由于模型和視圖是分離模式的約束,需要從底層對(duì)象向由于模型和視圖是分離模式的約束,需要從底層對(duì)象向上到窗口實(shí)現(xiàn)上到窗口實(shí)現(xiàn)“間接性間接性”

31、通信通信 兩種解決方案:兩種解決方案: 觀察者模式觀察者模式 UI外觀模式外觀模式.27UI外觀模式 在UI層增加接收來(lái)自底層請(qǐng)求的外觀DomainUIRegisterSaleProcessSaleJFrameUIFacadeUIFacades are occasionally used when a push-from-below communication model is required.Not a Swing or GUI class. Just a plain object which adds a level of indirection to the GUI objects.2

32、8觀察者模式: Domain:Sales:Register:Cashier: UI:Swing:ProcessSaleFrameenterItem(id, qty).enterItem(id, qty)s : Domain:Sales:SalemakeLineItem(spec, qty)Collaboration from the lower layers to the UI layer is usually via the Observer (Publish-Subscribe) pattern. The Sale object has registered subscribers tha

33、t are PropertyListeners. One happens to be a Swing GUI JFrame, but the Sale does not know this object as a GUI JFrame, but only as a PropertyListener.onPropertyEvent(s, sale.total, total).UI對(duì)象實(shí)現(xiàn)類似對(duì)象實(shí)現(xiàn)類似propertyListener接口,訂閱來(lái)自接口,訂閱來(lái)自底層對(duì)象的事件底層對(duì)象的事件,底層對(duì)象直接向底層對(duì)象直接向上層上層UI對(duì)象發(fā)送對(duì)象發(fā)送消息消息.29松散分層的耦合關(guān)系 分層存在的典型耦

34、合 所有較高層依賴于技術(shù)服務(wù)層和基礎(chǔ)層 領(lǐng)域?qū)右蕾囉跇I(yè)務(wù)基礎(chǔ)設(shè)施層 層間逐級(jí)向下調(diào)用 對(duì)于單進(jìn)程的”桌面應(yīng)用”程序,可以簡(jiǎn)化 與技術(shù)服務(wù)層或基礎(chǔ)層之間的強(qiáng)耦合 與穩(wěn)定點(diǎn)耦合,隔離變化點(diǎn) 這些層相對(duì)比較穩(wěn)定,耦合不會(huì)有影響.30分層缺點(diǎn) 增加層導(dǎo)致性能問(wèn)題 增加代碼編寫(xiě) 層間交互模式比較復(fù)雜 并不是所有問(wèn)題都適用分層.31典型應(yīng)用 經(jīng)典的三層架構(gòu)Calculate taxesInterfaceApplicationLogicAuthorizepaymentsStorageDatabase.32一般分層結(jié)構(gòu)用戶界面層用戶界面層 系統(tǒng)可能支持多種用戶界面類型系統(tǒng)可能支持多種用戶界面類型控制器控制器/

35、處理層(應(yīng)用層)處理層(應(yīng)用層) 與其他控制器類和業(yè)務(wù)類協(xié)作,對(duì)控制與其他控制器類和業(yè)務(wù)類協(xié)作,對(duì)控制器類進(jìn)行重構(gòu),(一個(gè)用例的控制)器類進(jìn)行重構(gòu),(一個(gè)用例的控制)業(yè)務(wù)業(yè)務(wù)/領(lǐng)域?qū)宇I(lǐng)域?qū)?分析過(guò)程中確定的類(領(lǐng)域模型的類)分析過(guò)程中確定的類(領(lǐng)域模型的類)持久層持久層 業(yè)務(wù)對(duì)象不受持久策略變化的影響,持業(yè)務(wù)對(duì)象不受持久策略變化的影響,持久層封裝對(duì)永久存儲(chǔ)的訪問(wèn),但其本身久層封裝對(duì)永久存儲(chǔ)的訪問(wèn),但其本身不是永久存儲(chǔ)機(jī)制不是永久存儲(chǔ)機(jī)制系統(tǒng)層系統(tǒng)層 提供對(duì)操作系統(tǒng)和非面向?qū)ο筚Y源的訪提供對(duì)操作系統(tǒng)和非面向?qū)ο筚Y源的訪問(wèn)問(wèn) 系統(tǒng)類通過(guò)面向?qū)ο笤L求將非面向?qū)ο笙到y(tǒng)類通過(guò)面向?qū)ο笤L求將非面向?qū)ο蠊δ芊庋b功能封裝 與系統(tǒng)類交互的消息流是受限的與系統(tǒng)類交互的消息流是受限的.33觀察者/發(fā)布-訂閱模型 Sale更新總額后,sale對(duì)象向窗口發(fā)送消息,使其刷新顯示 按模型與視圖分離的原則,sale對(duì)象不允許訪問(wèn)UI對(duì)象.34步驟:步驟: 定義接口定義接口 定義實(shí)現(xiàn)接口的窗口定義實(shí)現(xiàn)接口的窗口 窗口初始化向其傳遞窗口初始化向其傳遞sale實(shí)例實(shí)例 窗口向窗口向sale注冊(cè)事件的通知注冊(cè)事件的通知 Sale實(shí)例當(dāng)總額變化時(shí),遍歷所有訂閱者,通知實(shí)例當(dāng)總額變化時(shí),遍歷所有訂閱者,通知事件發(fā)生事件發(fā)生.35interfacePrope

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論