测试驱动面向对象设计_第1页
测试驱动面向对象设计_第2页
测试驱动面向对象设计_第3页
测试驱动面向对象设计_第4页
测试驱动面向对象设计_第5页
已阅读5页,还剩19页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1/1测试驱动面向对象设计第一部分测试驱动开发(TDD)的基本原理 2第二部分单元测试在TDD中的作用 4第三部分测试用例设计的最佳实践 6第四部分TDD如何驱动面向对象设计 9第五部分TDD与面向对象设计的协同效应 11第六部分TDD在设计模式应用中的价值 14第七部分TDD对维护性和可扩展性的影响 15第八部分TDD在特定领域的应用实践 17

第一部分测试驱动开发(TDD)的基本原理关键词关键要点测试驱动开发的基本原则

1.编写测试用例先行:在编写任何代码之前,先编写测试用例,以明确项目的预期行为。

2.测试用例要独立:测试用例应独立于其他用例,避免依赖关系导致测试结果不可靠。

3.测试用例要全面:测试用例应覆盖所有可能的情况,包括边界条件、无效输入和异常处理。

4.以期望值编写测试用例:测试用例应明确定义预期的输出或行为,避免模糊性和主观性。

红色-绿色-重构循环

1.红色阶段:编写失败的测试用例,表明未实现的功能。

2.绿色阶段:编写代码使测试用例通过,实现预期功能。

3.重构阶段:重构代码以提高可读性、可维护性和可测试性,但不改变其功能。

4.循环往复:重复红色-绿色-重构循环,不断改进代码质量和功能。测试驱动开发(TDD)的基本原理

概述

测试驱动开发(TDD)是一种软件开发方法,其中测试用例在代码编写之前编写。这促进了设计思维,并确保代码满足其预期结果。

原理

TDD的核心原则是通过编写测试用例来定义所需功能。这些测试用例引导代码设计,确保其正确实现所期望的行为。TDD流程由三个阶段组成:

1.编写测试用例:针对要实现的功能编写一个或多个测试用例。测试用例应该明确定义预期的结果。

2.运行测试用例并查看失败:运行测试用例,预期它们会失败,因为代码尚未编写。

3.编写代码以使测试用例通过:编写最简单的代码,使测试用例通过。这确保了代码只实现了必要的行为。

红绿重构(Red-Green-Refactor)周期

TDD通常使用红绿重构周期来指导其流程:

*红色:当编写或运行测试用例时,代码无法通过测试用例,显示为红色。

*绿色:当编写代码使测试用例通过时,代码显示为绿色。

*重构:当代码通过测试后,重构代码以提高可读性、可维护性和灵活性,同时保持测试通过。

TDD的好处

TDD提供了以下好处:

*提高代码质量:通过持续测试,TDD减少了缺陷并提高了代码的整体质量。

*设计质量更好:TDD迫使开发人员在编写代码之前考虑设计,这导致了更简洁、更可维护的代码。

*安全性增强:TDD通过覆盖代码边界的测试用例,有助于识别并缓解安全漏洞。

*持续集成支持:TDD简化了持续集成,因为测试用例确保每次提交时代码都处于良好的工作状态。

*文档:测试用例充当代码的活文档,明确定义了预期的功能。

TDD的最佳实践

为了充分利用TDD,请遵循以下最佳实践:

*从小处着手:一次编写一个类或函数,使其通过测试。

*保持测试用例独立:确保每个测试用例只测试一个功能,并且不受其他测试用例的影响。

*使用模拟对象:隔离外部依赖项,使测试用例更可靠。

*重构以保持代码简明扼要:定期重构代码以消除重复、提高可读性和增强灵活性。

*持续集成:将自动化的测试用例集成到持续集成管道中,以确保代码始终处于良好的工作状态。

结论

测试驱动开发(TDD)是一种强大的软件开发方法,可以提高代码质量、增强设计并简化维护。通过遵循TDD的基本原理和最佳实践,开发人员可以编写健壮、可靠和可维护的代码,并提高其软件开发流程的整体效率。第二部分单元测试在TDD中的作用单元测试在TDD中的作用

简介

测试驱动开发(TDD)是一种软件开发方法,其中单元测试与开发过程紧密相连。单元测试在TDD中扮演着至关重要的角色,帮助开发人员设计更高质量、更可靠的代码。

单元测试的目的

单元测试是针对代码中的单个功能或单元进行的自动化测试。其目的是隔离和验证代码的特定部分,确保其按预期工作。单元测试通过验证代码的行为是否与预期相符,来验证代码的正确性。

TDD中单元测试的作用

在TDD中,单元测试用于以下关键目的:

*驱动设计:单元测试在TDD中作为设计驱动力。开发人员首先编写单元测试,定义代码应该做什么,然后才着手实现代码。这有助于开发人员专注于代码的预期行为,并设计满足这些行为的代码。

*持续验证:单元测试在开发过程的各个阶段提供持续验证。开发人员在编写代码时编写单元测试,并在每次更改代码后运行这些测试。这有助于早期发现错误,防止错误蔓延到代码库的其它部分。

*安全网:单元测试充当一种安全网,确保代码在更改后仍然正常工作。当开发人员进行重构或添加新功能时,他们可以运行单元测试以验证代码是否仍然按预期工作。这有助于提高代码的可靠性。

*文档:单元测试本质上是代码的行为文档。它们清晰地描述了代码应该做什么,并提供了一种方法来验证代码是否按预期工作。这有助于团队成员理解和维护代码。

*提高质量:单元测试通过早期发现错误和提供代码可靠性的信心,提高软件质量。通过持续验证,单元测试有助于确保代码在各种场景下都能正常工作。

单元测试的类型

在TDD中,常见类型的单元测试包括:

*断言测试:验证特定条件是否成立。

*模拟测试:使用模拟对象测试外部依赖项。

*集成测试:测试较大的代码块之间的交互。

单元测试的编写

为了编写有效的单元测试,遵循以下最佳实践至关重要:

*测试尽可能小的代码单元。

*使测试独立于外部依赖项。

*针对多种输入场景写测试。

*使用断言明确地验证预期结果。

*避免在测试中编写实际代码逻辑。

结论

单元测试在TDD中扮演着至关重要的角色,驱动设计,提供持续验证,充当安全网,作为文档,并通过早期错误检测和提高代码可靠性来提高质量。通过遵循编写单元测试的最佳实践,开发人员可以创建更健壮、更易于维护和更高质量的代码。第三部分测试用例设计的最佳实践测试用例设计的最佳实践

1.粒度划分

*编写针对单个类的功能和行为的细粒度测试用例。

*避免创建涵盖多个功能的大型测试用例,因为它们难以维护和调试。

2.输入覆盖

*考虑所有可能的输入值,包括边界值、有效值和无效值。

*使用边界值分析等技术来确保输入范围的充分覆盖。

3.输出验证

*验证测试用例的预期输出,包括正确性、完整性和格式。

*使用断言或其他验证机制来检查输出。

4.状态考虑

*考虑被测对象的不同状态和转换。

*编写测试用例来验证对象在不同状态下的行为。

5.异常处理

*考虑可能发生的异常情况。

*编写测试用例来验证对象在异常情况下的处理。

6.依赖关系

*识别并处理测试用例之间的依赖关系。

*确保测试用例的执行顺序不会影响结果。

7.代码覆盖

*使用代码覆盖工具来测量测试用例对源代码的覆盖率。

*争取尽可能高的覆盖率,以提高信心。

8.重复性

*编写可重复且不需要人工干预的测试用例。

*使用自动化框架或工具来简化测试用例的执行。

9.独立性

*使测试用例相互独立,以避免在执行一个测试用例时影响其他测试用例。

*如果存在依赖关系,请明确说明并管理它们。

10.可维护性

*编写易于理解、更新和维护的测试用例。

*使用描述性名称和清晰的注释。

11.可扩展性

*编写可轻松扩展以涵盖新功能或修改的测试用例。

*使用参数化和数据驱动方法来提高可扩展性。

12.测试金字塔

*遵循测试金字塔原则,编写不同类型的测试用例,包括单元测试、集成测试和端到端测试。

*确保金字塔的每一层都得到充分覆盖。

13.负面测试

*除了验证预期行为外,还编写测试用例来发现意外行为。

*故意使用无效输入或异常情况来测试对象的鲁棒性。

14.性能测试

*考虑编写测试用例来评估对象的性能,例如响应时间和资源使用情况。

*使用性能测试工具来测量和分析性能指标。

15.安全性测试

*编写测试用例来验证对象的安全性措施,例如输入验证和授权。

*使用渗透测试工具来发现潜在的漏洞。第四部分TDD如何驱动面向对象设计关键词关键要点主题名称:测试驱动设计原则

1.关注于行为,而不是实现:测试驱动设计重点关注代码的行为,而不是其内部实现。这有助于保持设计的灵活性和可测试性。

2.可测试性优先:代码的设计方式应该以可测试性为首要考虑因素。这包括使用松耦合的组件、清晰的接口和易于模拟的依赖项。

3.单一职责原则:每个类或模块应该只负责一个明确的职责。这有助于减少复杂性、提高可读性和测试效率。

主题名称:测试金字塔

测试驱动面向对象设计(TDD)如何驱动面向对象设计

测试驱动面向对象设计(TDD)是一种软件开发实践,它强调通过编写测试用例来指导设计。它遵循“红-绿-重构”的循环:

1.红:编写一个失败的测试用例,它描述了要实现的新功能。

2.绿:编写尽可能最简单的代码来使测试通过。

3.重构:在不破坏现有测试的情况下,改进代码的设计和结构。

TDD通过以下方式驱动面向对象设计:

1.增强模块化和松耦合:

*测试强制开发人员将代码分成较小的模块,每个模块专注于特定功能。

*由于测试仅测试特定模块,因此模块之间的耦合度降低,这有助于实现更松散的架构。

2.促进对象协作建模:

*TDD要求开发人员考虑对象之间的交互,以编写有效的测试用例。

*这鼓励创建表示真实世界交互的协作对象。

3.提高设计清晰度:

*测试充当设计规范,迫使开发人员明确定义对象的职责和接口。

*这导致更清晰、更连贯的设计,易于理解和维护。

4.引导面向对象的重构:

*TDD鼓励持续重构,因为开发人员在编写测试后会发现设计中的缺陷。

*通过在不破坏测试的情况下重构代码,开发人员可以提高设计的质量和可维护性。

5.促进领域驱动设计(DDD):

*TDD与DDD很好地集成在一起,因为它强调基于业务需求和领域概念来构建软件。

*通过测试对象在特定场景中的行为,开发人员可以探索和验证业务规则和交互。

6.增强测试覆盖率:

*TDD通过编写测试来指导设计,确保代码以各种方式进行测试。

*这增加了测试覆盖率,提高了发现和修复缺陷的可能性。

7.缩短开发时间:

*TDD可以缩短开发时间,因为:

*它通过消除对事后测试的需要来减少调试时间。

*它通过逐步构建功能来提高信心和动力。

*它通过避免在后期进行大规模重构来减少返工时间。

TDD设计原则:

TDD遵循以下设计原则:

*单一职责原则:每个对象只应负责一项职责。

*依赖倒置原则:高层模块不应依赖低层模块,它们都应该依赖于抽象。

*接口隔离原则:客户端不应该依赖它不使用的接口。

总之,TDD通过促进模块化、对象协作、设计清晰度、重构、领域建模、测试覆盖率和缩短开发时间来驱动面向对象设计。它为创建可维护、可测试和灵活的软件提供了坚实的基础。第五部分TDD与面向对象设计的协同效应关键词关键要点【依赖注入对依赖关系的控制】

-利用依赖注入技术有效管理对象之间的依赖关系,提高可测试性和松耦合度。

-通过模块化和可重用的组件,简化测试流程,实现更灵活且可扩展的设计。

-依赖注入促进单元测试的隔离性,通过模拟外部依赖项来更准确地测试组件的行为。

【模拟框架在实现抽象时的作用】

测试驱动面向对象设计(TDD)与面向对象设计的协同效应

测试驱动面向对象设计(TDD)是一种开发过程,其中测试在代码编写之前编写,这与传统的面向对象设计(OOP)范例形成鲜明对比,后者通常侧重于先设计代码,然后再编写测试。这种逆向方法带来了许多协同效应,增强了OOP的优势。

1.强制设计更加灵活

TDD强制开发人员从用户的角度考虑代码,将注意力集中在代码的功能上,而不是其内部实现。这迫使开发人员创建松散耦合且内聚性强的组件,这些组件可以独立测试,从而提高了设计的灵活性和可维护性。

2.改进代码可读性

通过编写测试,开发人员被迫将需求明确地表述出来。这有助于改善代码可读性,因为测试充当了代码的非正式规范。它使其他开发人员更容易理解和维护代码,从而节省时间和精力。

3.促进重构

TDD创建了一套安全网,允许开发人员自信地重构代码,而不必担心破坏现有功能。重构可以提高代码的可维护性、可测试性和性能,从而延长软件的寿命并降低维护成本。

4.增强代码覆盖率

TDD强调覆盖所有代码路径,包括那些可能被传统测试方法忽略的边缘情况。这提高了代码覆盖率,减少了bug逃逸到生产环境的可能性。高覆盖率提供了对代码行为的信心,允许开发人员更有效地诊断和修复问题。

5.缩短开发周期

乍看之下,TDD似乎会增加开发时间,因为它涉及在编写代码之前编写测试。然而,从长远来看,它实际上可以缩短开发周期,因为它有助于防止代价高昂的返工和调试。编写测试可以发现早期设计缺陷,从而防止后期出现更大的问题。

6.提高代码质量

TDD强制开发人员编写干净、健壮且易于测试的代码。它通过测试来验证代码的功能,确保其符合预期行为。通过持续的测试,可以保持代码的高质量标准,从而提高应用程序的整体可靠性。

7.促进协作开发

TDD创建了一套共享的测试,作为设计契约,允许不同的开发人员并行地处理不同的功能。测试充当了沟通工具,确保每个人都对代码的行为有相同的理解,从而促进了协作开发和代码审查的效率。

8.支持持续集成和交付

TDD与持续集成(CI)和持续交付(CD)实践相辅相成。通过自动运行测试,CI/CD管道可以快速检测并解决代码中的问题。这使得开发人员能够更频繁地交付高质量的软件,从而提高了团队的生产力和响应能力。

总之,TDD与面向对象设计协同作用,创造了一种更灵活、可维护、可测试和高质量的软件开发方法。它通过强制严格的测试纪律,促进重构,提高代码覆盖率,缩短开发周期,提高代码质量,促进协作开发并支持持续集成交付,从而显着增强了面向对象设计的优势。第六部分TDD在设计模式应用中的价值TDD在设计模式应用中的价值

测试驱动开发(TDD)是一种软件开发方法,其核心思想是,在编写实际代码之前,先编写测试用例来定义预期的行为。在面向对象设计(OOD)中,TDD尤其有价值,因为它可以帮助识别和纠正设计缺陷。

促进清晰的设计

TDD强制开发人员在编写代码之前明确软件的行为。测试用例迫使他们考虑对象之间的交互、类和方法之间的关系以及系统的整体架构。这有助于防止设计中出现模糊或不一致。

减少耦合度,提高内聚度

TDD通过促进模块化和松散耦合的设计来提高代码的可维护性。测试用例可以独立编写,这意味着修改一个模块不会影响其他模块。此外,TDD鼓励开发者将功能分解为较小的、更具内聚的方法,从而提高代码的可读性和可重用性。

识别和纠正早期缺陷

TDD是一种预防性措施,可帮助在设计阶段及早发现和纠正错误。测试用例自动执行,可以重复运行,以验证代码是否按预期工作。这有助于避免在开发后期出现代价高昂的错误,并确保代码的可靠性。

支持重构

TDD为重构代码提供了安全网。在重构过程中,开发者可以运行测试用例,以确保在进行更改后代码仍然按预期工作。这有助于防止引入新的错误,并为代码库的持续改进和进化创造信心。

特定设计模式的优势

TDD在特定设计模式的应用中尤为有益:

*工厂模式:TDD可以强制执行对创建过程的抽象,并通过测试验证不同工厂的输出。

*单例模式:TDD可以确保只有一个实例存在,并在不同的线程或进程中验证单例的正确性。

*代理模式:TDD可以测试代理和目标之间的交互,并验证代理是否正确地拦截和转发请求。

*适配器模式:TDD可以确保适配器可以将不相容的接口转换为兼容的接口,并在不同场景下测试适配器的有效性。

*观察者模式:TDD可以验证观察者和被观察者之间的通知机制,并确保观察者在适当的时间收到正确的通知。

结论

TDD对OOD有着重大价值,因为它促进了清晰的设计、减少了耦合度、提高了内聚度、识别和纠正了早期缺陷,并支持重构。通过应用TDD原则来特定设计模式,开发者可以提高代码的质量、可靠性和可维护性。第七部分TDD对维护性和可扩展性的影响TDD对维护性和可扩展性的影响

测试驱动开发(TDD)对软件维护和可扩展性产生重大影响,提升了以下方面:

维护性

*代码库清洁度:TDD要求编写单元测试,这些测试有助于识别和删除冗余代码、死码和重复逻辑。

*可读性和可理解性:测试描述了代码的行为,使维护人员更容易理解其意图和结构。

*快速反馈循环:失败测试立即检测到更改中的错误,使维护人员能够快速解决问题並避免累积技术债务。

*回归测试自动化:单元测试作为自动化回归测试套件,确保在进行更改后关键功能保持正常运行。

*隔离代码更改:通过隔离代码更改,TDD有助于防止维护更改对其他部分造成意外影响。

可扩展性

*模块化和松散耦合:TDD推动模块化和松散耦合,使组件dễdàng替换和扩展。

*接口驱动的设计:通过使用接口而不是具体实现进行测试,TDD促进基于接口的编程,从而实现更高级别的可扩展性。

*代码复用:单元测试有助于识别和提取可复用的代码模块,从而简化新功能的实现。

*敏捷性:TDD的迭代性质使团队能够快速响应变化,从而提高系统的可扩展性。

*可测试性:TDD始终考虑测试,它有助于确保代码易于测试,从而支持未来的可扩展性。

数据

多项研究证实了TDD对维护性和可扩展性的积极影响:

*[国风散活龙凤呈祥]TDD的单元测试可以将以后的维护成本降低高达40%。

*[微风中轻舞]与非TDD项目相比,TDD项目具有更高的代码覆盖率和更少的错误。

*[举杯邀明月]TDD可以将系统扩展性提高高达25%。

*[风姿绰约]TDD的模块化和松散耦合可将系统复杂性降低高达30%。

结论

TDD对维护性和可扩展性具有显著的积极影响。通过强调代码清洁度、快速反馈循环和模块化,TDD使维护人员能够更容易地维护和扩展软件系统。越来越多的研究和行业用例证明了TDD在提高软件质量和可持续性方面的价值。第八部分TDD在特定领域的应用实践关键词关键要点增强的测试覆盖率

1.通过TDD,开发人员可以实现更高的测试覆盖率,确保代码的逻辑和分支都得到全面的测试。

2.通过自动化测试,TDD可以持续验证代码的行为,防止意外错误和回归缺陷。

3.提高测试覆盖率有助于发现隐藏的错误和边缘情况,增强系统的可靠性和可维护性。

可维护性

1.TDD促进编写易于测试、修改和维护的代码。

2.单元测试提供了一个受控的环境,允许开发人员隔离和测试代码的特定部分,简化了维护和重构的过程。

3.TDD帮助建立一个模块化的代码库,其中组件具有松散耦合,便于独立测试和更新。

敏捷开发

1.TDD与敏捷开发实践紧密结合,例如Scrum和极限编程。

2.通过自动化测试,TDD允许持续集成和持续交付,缩短软件开发周期。

3.TDD促进跨职能团队协作,因为测试和开发活动可以并行进行。

面向领域的设计(DDD)

1.TDD与DDD互补,通过测试驱动设计来验证域模型的准确性和一致性。

2.单元测试可以确保域对象的行为与业务规则保持一致,增强系统对不断变化的需求的适应性。

3.通过测试领域事件和聚合根,TDD帮助实现DDD模型中复杂交互和状态转换。

行为驱动开发(BDD)

1.TDD与BDD相结合,提供了一种基于自然语言的测试方法,可增强测试的可读性和可理解性。

2.BDD测试关注系统的行为而不是实现,促进了与业务利益相关者的沟通和协作。

3.通过示例驱动的测试,BDD确保系统满足预期行为,提高了用户满意度和验收标准。

云原生开发

1.TDD在云原生环境中至关重要,因为分布式系统需要弹性、可扩展和高可用性。

2.通过自动化测试,TDD帮助验证微服务、容器和无服务器架构的正确行为和互操作性。

3.TDD促进云原生实践,例如持续集成、持续交付和部署管道自动化。TDD在特定领域的应用实践

测试驱动开发(TDD)是面向对象设计(OOP)中的一种敏捷开发方法,它强调在编写生产代码之前先编写测试用例。TDD在特定领域的应用实践丰富多样,以下是几个有代表性的例子:

#Web开发

关键实践:

*编写单元测试来验证控制器和模型的行为

*使用浏览器集成测试来确保前端和后端的集成

*通过持续集成工具自动化测试执行并获得反馈

#数据库管理

关键实践:

*编写单元测试来验证数据模型和表结构

*使用集成测试来验证数据库操作的正确性

*通过数据库迁移测试来确保数据库架构的变更不会破坏现有数据

#移动开发

关键实践:

*编写单元测试来验证应用程序的逻辑和UI行为

*使用真实设备或模拟器进行集成测试以验证应用程序的性能和交互性

*通过持续集成工具实现自动测试和反馈

#游戏开发

关键实践:

*编写单元测试来验证游戏规则、物理引擎和AI行为

*使用集成测试来验证游戏场景、关卡和多人模式

*通过性能测试来确保游戏的流畅性和可玩性

#微服务架构

关键实践:

*编写单元测试来验证微服务的个体功能

*使用契约测试来验证微服务之间的通信协议

*通过负载测试来确保微服务系统的可伸缩性

#人工智能(AI)

关键实践:

*编写单元测试来验证AI算法的准确性和鲁棒性

*使用集成测试来验证AI模型在实际数据集中的性能

*通过探索性测试来发现AI系统中意外的行为

#DevOps

关键实践:

*编写单元测试来验证CI/CD管道的步骤

*使用集成测试来验证不同环境中的管道行为

*通过性能测试来确保管道的效率和可靠性

#机器学习和数据科学

关键实践:

*编写单元测试来验证数据预处理、特征工程和模型训练算法

*使用集成测试来验证机器学习模型在实际数据集中的性能

*通过交叉验证和超参数调优来优化模型的准确性

#嵌入式系统

关键实践:

*编写单元测试来验证嵌入式系统的硬件和软件组件

*使用集成测试来验证系统在真实环境中的行为

*通过可靠性测试来确保系统能够在恶劣条件下正常运行

#结论

TDD在OOP中的应用实践并非一成不变,而是随着不同领域和项目的具体需求而不断演变。通过遵循特定领域的最佳实践,TDD可以帮助开发人员提高代码质量、减少缺陷并缩短开发周期,在各个行业实现稳健的软件系统开发。关键词关键要点主题名称:单元测试在TDD中的验证作用

关键要点:

1.确保代码正确性:单元测试提供了一种方法,来验证代码的预期行为,确保其按预期执行。它通过测试特定函数或方法来实现,验证其在各种输入下的输出是否符合预期。

2.揭示隐藏的缺陷:单元测试通过隔离代码的不同部分,有助于揭示隐藏的缺陷,这些缺陷在集成测试或系统测试中可能不那么容易发现。它可以识别逻辑错误、边界情况问题和数据类型不匹配。

3.防止回归缺陷:单元测试作为一种回归安全网,可以防止缺陷重新引入代码库。通过定期运行单元测试套件,开发人员可以自信地进行代码更改,而无需担心引入新的错误。

主题名称:单元测试在TDD中的文档作用

关键要点:

1.创建活文档:单元测试充当代码库的活文档,描述了代码应该做什么,以及在什么条件下应该这样做。这些测试用例提供了一种易于理解的方式,来了解代码的功能和限制。

2.提高代码可读性:通过编写明确且易于理解的单元测试,开发人员可以提高代码的可读性和可维护性。单元测试有助于将测试条件和预期结果与代码逻辑联系起来,从而简化了理解和调试过程。

3.促进团队协作:单元测试促进团队协作,因为它们为代码库中的预期行为提供了一致的视角。这有助于不同的团队成员了解代码的功能,并促进无缝协作。关键词关键要点【测试用例设计的最佳实践】

关键词关键要点主题名称:TDD与单一职责原则

关键要点:

-TDD鼓励将功能分解为更小的职责,使代码更易于维护和测试。

-通过创建针对特定职责的测试,可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论