Java项目组开发规范_第1页
Java项目组开发规范_第2页
Java项目组开发规范_第3页
Java项目组开发规范_第4页
Java项目组开发规范_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、.用户运用手册:.; 第 PAGE 28页 共 NUMPAGES 29页目 录 TOC o 1-3 h z u HYPERLINK l _Toc268856 第一章 概述 PAGEREF _Toc268856 h 2 HYPERLINK l _Toc268856 1.1 编写目的 PAGEREF _Toc268856 h 2 HYPERLINK l _Toc268856 1.2 面向读者 PAGEREF _Toc268856 h 2 HYPERLINK l _Toc268856 1.3 名词解释 PAGEREF _Toc268856 h 2 HYPERLINK l _Toc268856140

2、第二章 程序构造 PAGEREF _Toc268856140 h 3 HYPERLINK l _Toc268856141 2.1 包构造 PAGEREF _Toc268856141 h 3 HYPERLINK l _Toc268856142 2.2 相关类 PAGEREF _Toc268856142 h 3 HYPERLINK l _Toc268856143 第三章 JAVA规范 PAGEREF _Toc268856143 h 5 HYPERLINK l _Toc268856144 3.1 中心原那么 PAGEREF _Toc268856144 h 5 HYPERLINK l _Toc2688

3、56145 3.2 命名规范 PAGEREF _Toc268856145 h 5 HYPERLINK l _Toc268856146 3.2.1 包、类和接口 PAGEREF _Toc268856146 h 5 HYPERLINK l _Toc268856147 3.2.2 方法 PAGEREF _Toc268856147 h 5 HYPERLINK l _Toc268856148 3.2.3 变量 PAGEREF _Toc268856148 h 6 HYPERLINK l _Toc268856149 3.2.4 常量 PAGEREF _Toc268856149 h 7 HYPERLINK l

4、 _Toc268856150 3.3 代码构造 PAGEREF _Toc268856150 h 7 HYPERLINK l _Toc268856151 3.3.1 缩进 PAGEREF _Toc268856151 h 7 HYPERLINK l _Toc268856152 3.3.2 行宽 PAGEREF _Toc268856152 h 8 HYPERLINK l _Toc268856153 3.3.3 换行 PAGEREF _Toc268856153 h 8 HYPERLINK l _Toc268856154 3.3.4 长度 PAGEREF _Toc268856154 h 10 HYPER

5、LINK l _Toc268856155 3.3.5 括号 PAGEREF _Toc268856155 h 10 HYPERLINK l _Toc268856156 3.3.6 注释 PAGEREF _Toc268856156 h 11 HYPERLINK l _Toc268856157 3.3.7 声明 PAGEREF _Toc268856157 h 13 HYPERLINK l _Toc268856158 3.3.8 语句 PAGEREF _Toc268856158 h 14 HYPERLINK l _Toc268856159 3.4 异常处置 PAGEREF _Toc268856159

6、h 18 HYPERLINK l _Toc268856160 3.5 其他规范 PAGEREF _Toc268856160 h 19 HYPERLINK l _Toc268856161 第四章 JSP规范 PAGEREF _Toc268856161 h 20 HYPERLINK l _Toc268856162 4.1 JSP文件名命名规那么 PAGEREF _Toc268856162 h 20 HYPERLINK l _Toc268856163 4.2 JSP头格式 PAGEREF _Toc268856163 h 20 HYPERLINK l _Toc268856164 4.3 JSP页面中按

7、钮的快捷键 PAGEREF _Toc268856164 h 21 HYPERLINK l _Toc268856165 4.4 SERVLET命名规那么 PAGEREF _Toc268856165 h 21 HYPERLINK l _Toc268856166 4.5 HTML格式 PAGEREF _Toc268856166 h 22 HYPERLINK l _Toc268856167 4.6 web.xml书写规范 PAGEREF _Toc268856167 h 22 HYPERLINK l _Toc268856168 4.7 其他规范 PAGEREF _Toc268856168 h 22 HY

8、PERLINK l _Toc268856169 第五章 数据库规范 PAGEREF _Toc268856169 h 24 HYPERLINK l _Toc268856170 5.1 命名规那么 PAGEREF _Toc268856170 h 24 HYPERLINK l _Toc268856171 5.1.1 根本规那么 PAGEREF _Toc268856171 h 24 HYPERLINK l _Toc268856172 5.1.2 常用称号 PAGEREF _Toc268856172 h 24 HYPERLINK l _Toc268856173 5.2 数据类型 PAGEREF _Toc

9、268856173 h 25 HYPERLINK l _Toc268856174 5.2.1 根本规那么 PAGEREF _Toc268856174 h 25 HYPERLINK l _Toc268856175 5.2.2 常用类型 PAGEREF _Toc268856175 h 25 HYPERLINK l _Toc268856176 5.3 SQL语句 PAGEREF _Toc268856176 h 25 HYPERLINK l _Toc268856177 5.4 注释规那么 PAGEREF _Toc268856177 h 26 HYPERLINK l _Toc268856178 5.5

10、JDBC操作 PAGEREF _Toc268856178 h 26 HYPERLINK l _Toc268856179 5.6 优化规那么 PAGEREF _Toc268856179 h 26 HYPERLINK l _Toc268856180 5.7 本卷须知 PAGEREF _Toc268856180 h 27概述编写目的为规范FSOP工程的开发实施任务,特制定本规范。为了提高软件开发质量,降低开发周期,加强代码的可重用性和易读性,使软件便于维护,开发人员间便于交流和协作,特总结出开发规范,以为参考。面向读者从事FSOP工程的开发、实施任务的相关人员。名词解释本节对手册中涉及到的术语进展简

11、单描画。程序构造包构造工程中的一切代码,必需符合如下的构造:1、各子系统的模块:com.icss.fsop.subsys.module.servlet.xxServletcom.icss.fsop.subsysmon.util.xxUtilcom.icss.fsop.subsysmon.hander.xxHandercom.icss.fsop.subsysmon.sql.xxSqlcom.icss.fsop.subsysmon.entity.xxxx其中subsys是子系统的称号,module是模块的称号,xxServlet和xxHandler是模块下面的Servlet和Handler,允许有

12、多个Servlet和Handler同时存在,建议同一个模块下,用多套Servlet和Handler处置不同的业务对象;util存放该模块公用的类;package/class可以恣意级别的包或者类;2、子系统之外的模块:com.icss.fsop.sm.module.servlet.xxServletcom.icss.fsop. smmon.util.xxUtilcom.icss.fsop. smmon.hander.xxHandercom.icss.fsop. smmon.sql.xxSqlcom.icss.fsop. smmon.entity.xxxx其中sm是system manage的简

13、写,其他同上;3、公共的类:com.icss.fsopmon.package/class含义同上。相关类1、对于Servlet,必需承继ServletBase,必需在Servlet中处置与request和response相关的操作,普通是取参数和设置属性等操作;2、对于Handler,必需承继HandlerBase,该类的方法中,不能用request和response作为参数,更不能用Servlet作为参数;3、程序中运用到的SQL,一概在XXXSQLBuilder中进展拼写,该类属于util包,需求承继SQLBuilderBase,其构造函数为私有类型,并且要实现静态方法getSQLBuil

14、der(conn),根据不用的数据库类型,前往不同的实例。JAVA规范中心原那么1 软件工程化2 面向对象3 能简单不复杂4 强调团队协作命名规范程序内的一切标识符包括包名、类名、接口名、方法名、变量名都应由字母、数字和下划线组成,并以字母开头;一致采用英文命名,用词该当准确,制止运用中英文混合的方式命名,假设能够的话,尽量运用有意义的英文单词或多个单词的缩写命名缩写应该是被广泛运用的缩写,做到见名知意;标识符的长度该当符合“min-length & max-information原那么;程序中不要出现仅靠大小写区分的类似的标识符;在运用英文字母起标识作用时要留意,尽量不运用 “O,“Z,“I

15、等单个字符,以防止与数字“0,“2,“1混淆。包、类和接口1、一切包名全部小写,只能运用英文字母,不得运用数字和其他符号;2、类名运用有意义的英文单词或单词的组合,每个单词的首字母大写,假设是实现接口的类,可酌情运用Imp结尾,英文单词普通为名词。3、接口名运用有意义的名词和描画词的组合,每个单词的首字母大写,称号前不需求添加前缀“I,英文字母i的大写。方法方法命名运用动词或“动词+名词的组合,称号的首字母小写,称号中其他词的首字母大写。对于取值的方法(getter method),加“get作前缀;对于设置的方法(setter method),加“set作前缀;对于布尔型的方法(boolea

16、n method),加“is作前缀;用正确的反义词组命名具有互斥意义或相反动作的函数,例如getValue(),setValue()。 变量变量命名运用名词或名词 “描画词名词的组合,称号的首字母小写,称号中其他词的首字母大写。尽量防止单个字符的变量名,除非是一次性的暂时变量。暂时变量通常被取名为i,j,k,m 和n,它们普通用于整型;c,d,e,它们普通用于字符型。用正确的反义词组命名具有互斥意义的变量,例如: int minValue和int maxValue。尽量防止名字中出现数字编号,如Value1,Value2等,除非逻辑上确实需求编号。命名应尽量运用匈牙利命名法,成员变量用长名字,

17、参数和部分变量用短名字,普通由小写字母开头的单词组合而成。类成员变量前普通应加上m_,静态变量应加上s_,紧接着是变量的类型只限于JDK内置类型。暂时变量应参照如下类似的格式书写,如ltmp ,tmpStr,tempStr等。例如:m_nTotalNum,m_strPath,s_bRcving类型前缀整型n,i长整型l无符号整型u字符ch布尔量b浮点数f双精度浮点d字符串str,sz常量常量(static final 变量)名字的每个字母都大写,并且指出完好含义,词与词之间用下划线分隔。代码构造代码组织要明晰,严厉控制函数的长度和每行代码的长度,,(,),if,else,do,while,fo

18、r,case等要对应整齐,缩进全部用Tab键4个空格。变量的定义要集中,函数间要有空行分开,一个程序中的空行数目最好占8%-16%。多态函数和功能相近的函数集中放在一同。代码应该简约、清楚并讲述了所发生的一切,我们的目的应该是写出最明晰的代码,而不是最巧妙的代码。有些不易了解的变量或函数应作注释,难懂的代码要有注解,在文件的开场处有该文件的用途描画。一定要坚持注释的一致性。代码的重用要仔细,删掉从来没有用过的函数或变量,大篇幅注释掉的代码行也应删除,以免使程序混乱难读。工程中不起作用的文件或类应删除,工程目录下的非工程文件也应该移走,坚持工程的清洁,防止混淆难于管理。缩进代码缩进是指经过在每行

19、代码前键入空格或制表符的方式,表示每行代码之间的层次关系。任何编程言语都需求代码缩进规范程序的构造,采用代码缩进的编程风格有利于代码的阅读和了解。在本工程的开发中,一致采用TAB4个空格进展代码缩进。在遇到有关类、构造、函数或过程、以及枚举等等复杂程序构造的定义的时候,我们通常需求将它的内容缩进一层。在 C/C+/C#/Java 言语中,大括号是一个非常明显的标志,凡是遇到大括号,都应该直接联想到缩进。行宽当一条语句太长而超出一定的宽度时,应该折行书写,尽量防止一行的长度超越80 个字符。换行需求折行时,从第二行起到该语句终了之间的各行应该缩进一层,至下一条语句时再恢复原来的缩进位置。这一点我

20、置信大家都能了解并情愿遵照,然而问题的焦点并不在于要不要换行,而在于在什么位置换行。当一个表达式不能在一行内写完,参照下面的规范换行:逗号后换行,操作符后换行,换行时保证代码意义的衔接性。在换行时,我们通常在一个变量或者常量之前换行,把逗号之类的分隔符、运算符留在前一行的行尾。函数调用时,假设参数个数很多,或者要传送的表达式写起来很长,那么也会涉及到长语句换行问题;在一些必要的情况下,我们为了明晰地列出函数的每一个参数,可以每行只书写一个参数,原那么是:尽能够地在参数与参数之间换行,并将逗号保管在上一行行末。下面是经常运用的一些换行的例如代码:代码例如1:由于代码过长而进展断行bitmap =

21、 new Bitmap(size.Width, size.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);代码例如2:对于一个超长表达式,我们可以在某两个表达式项之延续开:if (f = ImageFormat.Jpeg.Guid | f = ImageFormat.Tiff.Guid | f = ImageFormat.Png.Guid | f = ImageFormat.Exif.Guid) supportsPropertyItems = true;else supportsPropertyItems = false;

22、本来一个很长的条件表达式,经过在“|运算符处换行,显得更加地明晰。有一点需求我们留意的是,当我们进展折行时,要将折行位置处的分隔符如前一例中的逗号,这一例中的“|运算符等留在上一行的行末,给人以“此行并未终了的直观印象。代码例如13:寻觅最正确的断行位置double containerAspectRatio = (double)container.ClientWidth / container.ClientHeight;如此一来,这个除法算术表达式就显得较为完好,相比前一种写法而言更能表达其内在的逻辑关系。通常我们会选择整个表达式中最高的关系层次进展断行,例如上述代码中的“赋值号和“除号都是可

23、以思索的断行点,但相比较而言,除号衔接的这个算术表达式只是整个赋值表达式的右半部分,假设在除号处断行,那么不但整个表达式会被截断,连部分的这个除法表达式也会被截断;反之,我们选择在赋值号处换行,可以坚持除法表达式的完好,最大限制地减少换行对语句整体构造的破坏,可以更加清楚地表达出原来的逻辑。代码例如14:将函数调用中的每一个参数都分行书写Rectangle imageBounds = new Rectangle( itemBounds.X + padding, itemBounds.Y + padding, itemBounds.Width - padding * 2, itemBounds.

24、Height - padding * 2);当参数数量较多,参数较长或者包含表达式的时候,这种排版比起单独写成一行更为直观醒目。长度每个函数主要逻辑语句的长度以30个自然行以下为宜,建议不要超越50行,假设超越80行就应该重新组织。假设单独成行,那么其所在的行不在计算的范围内,catch/finally语句块中的语句不计算在内。括号在大括号语法中,缩进时大括号的写法有不同的几种,个人以为,前面所用的那种左右括号单独一行的写法最为明晰,由于可以最好地反映出括号的配对情况。详细运用何种方式并不重要,重要的是,要坚持方式风格的一致,不能在同一个工程中出现不同的风格。风格1看起来紧凑些,可以减少代码的

25、行数,但是在其他代码存在换行的情况下,不容易发现配对的括号,必需求借助IDE提供的功能才可以,建议运用风格2,这样的代码看起来更明晰一些,这点比较重要;/风格1if ( condition) doSomethingIf(); else doSomethingElse();/风格2if ( condition) doSomethingIf(); else doSomethingElse();注释注释是用来解释程序做什么What,为什么这样做Why,以及要特别留意的地方的,而不是注释程序是怎样任务的How,他的程序本身就应该能阐明这一问题,假设程序的逻辑过于复杂,添加一些注释也是有必要的。例如:下

26、面的注释是必需的:/go thru the array, note the last element is at len-1for (i = 0; ilen; i+) DoSomeThing();下面的注释是多余的/this loop starts the i from 0 to len, in each step, it/ does SomeThingfor (i = 0; ilen; i+) DoSomeThing();Java 程序有两类注释:实现注释(implementation comments)和文档注释(documentcomments)。实现注释运用/*.*/和/界定的注释。文

27、档注释是Java 独有的,并由/*.*/界定。切记,注释要随着程序的修正而不断更新,一个误导的Misleading注释往往比没有注释更糟糕。另外,注释包括一切源代码建议只用ASCII字符,不要用中文或其他特殊字符,它们会极大地影响程序的可移植性。单行注释短注释可以显示在一行内,并与其后的代码具有一样的缩进层级。假设一个注释不能在一行内写完,就该采用多行注释(参见多行注释)。单行注释之前应该有一个空行。例如:if (condition) /* Handle the condition. */.或者if (condition) /Handle the condition. .多行注释多行注释通常用

28、于提供对方法,数据构造和算法的描画。多行注释常被置于每个类和方法开场处,或者用于需求对某一实现细节做详细阐明时。例如:/* Here is a block comment.*/行末注释极短的注释与它们所要描画的代码位于同一行,注释界定符是/或者/* */,可以注释掉整行或者一行中的一部分。例如:if (a = 2)return true; / special caseelsereturn false; /* special case */文档注释文档注释描画Java 的类、接口、构造器,方法,以及字段(field)。每个文档注释都会被置于注释定界符/*.*/之中,一个注释对应一个类、接口或成员

29、。该注释应位于声明之前,文档注释的第一行(/*)不需缩进,随后的文档注释每行都缩进1 格(使星号纵向对齐)。例如:/* The Example class provides .*/public class Example /* the field description .*/private int iCount = 0;/* the method description .* param * return * throws*/public void doSomething()假设他想给出有关类、接口、变量或方法的信息,而这些信息又不适宜写在文档中,那么可运用实现块注释或紧跟在声明后面的单行注

30、释。例如,有关一个类实现的细节,应放入紧跟在类声明后面的实现块注释中,而不是放在文档注释中。文档注释不能放在一个语句块内运用。声明变量的声明:引荐一行声明一个变量,由于这样以利于写注释;尽量在声明变量的同时进展初始化,独一不这么做的理由是变量的初始值依赖于某些先前发生的计算;防止声明的部分变量覆盖上一级声明的变量。例如,不要在内部代码块中声明一样的变量名;只在代码块的开场处声明变量,不要在初次用到该变量时才声明。定义类的成员变量时,总的定义顺序是先定义静态变量后定义实例变量,在每种类型的变量中,变量顺序依次为:公共(public)变量,受维护(protected)变量,私有(private)变

31、量。语句if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号。尽量减少嵌套语句的层数,最好不好超越4层,假设多于4层,那么应该对函数进展重构。if-else只需if的语句:if ( condition ) /do something 含有else的语句:if ( condition ) /do something else /do something含有else-if的语句:if ( condition ) /do something else if( condition2 ) /do so

32、methingfor语句一个for 语句应该具有如下格式:for (initialization; condition; update)statements;一个空的for 语句(一切任务都在初始化,条件判别,更新子句中完成应该具有如下格式:for (initialization; condition; update) 当在for 语句的初始化或更新子句中运用逗号时,防止因运用三个以上变量,而导致复杂度提高。假设需求,可以在for 循环之前(为初始化子句)或for 循环末尾(为更新子句)运用单独的语句。while语句一个while 语句应该具有如下格式while (condition)stat

33、ements;一个空的while 语句应该具有如下格式:while (condition) do-while语句一个do-while 语句应该具有如下格式:do statements; while (condition);switch语句对于有多个分支的代码,每个分支一行,且必需包含默许(default)分支。一个switch 语句应该具有如下格式:switch (condition) case ABC:statements;break;case XYZ:statements;break;default: statements;break;try语句一个try-catch 语句应该具有如下格式

34、:trystatements; catch (ExceptionClass e) statements; finally statements;其中finally 语句块是可选的。空语句空行将逻辑相关的代码段分隔开,以提高可读性。以下情况应该总是运用两个空行: 1、多个类接口声明之间以下情况应该总是运用一个空行:1、两个方法之间2、语句块内的部分变量和方法的第一条语句之间3、注释之前4、一个方法内的两个逻辑段之间空格以下情况应该运用空格:1、一个紧跟着括号的关键字应该被空格分开,例如:while (true).2、空白应该位于参数列表中逗号的后面;obj.doSomething(arg1, a

35、rg2, arg3);3、一切的二元运算符,除了.,应该运用空格将之与操作数分开。一元操作符和操作数之间不因该加空格,比如:负号(-)、自增(+)和自减(-)。例如:a += c + d;a = (a + b) / (c * d);n+;printSize(size is + foo + n);4、for 语句中的表达式应该被空格分开,例如:for (expr1; expr2; expr3)5、强迫转型后应该跟一个空格,例如:myMethod(byte) aNum, (Object) x);myMethod(int) (cp + 5), (int) (i + 3) + 1);异常处置系统中捕获

36、的异常,在无法采取补救措施或补救措施失败后,一概不允许单独处置异常,全部要向上级代码抛出,由系统一致处置。系统提供了通用的异常封装类BaseException和在代码中程序员需把捕获到的详细异常和相应的异常描画代码一同封装入BaseException中,“向外抛出,最终由系统一致处置。当在业务层代码handler中有异常发生时,需在异常try/catch的catch块中创建BaseException,将捕获到的详细异常封装入BaseException,并将BaseException向外抛出至servlet中,交由上级代码一致处置,并记录详细的日志信息。例如:try catch(IOExcept

37、ion e) log.error(系统发生异常:无法进展XXX操作,e); throw(new BaseException(IErrorCode.IO_Exception,e); 当在逻辑控制层代码servlet中有异常发生,或有异常被抛出至servlet中时,不允许在servlet中出现try/catch块对产生的异常进展处置。servlet中的方法一概将异常“向外抛出,由系统级代码一致处置。 例如:protected void performTask()throws NumberFormatException 其他规范1、限制外部包的运用假设需求运用一个外部包需求听取工程经理的意见。在工程

38、经理同意以前,严禁擅自运用一个外部的包;2、对于只需一行的方法体,可以和方法声明写在一行上;3、在类内部尽量不要定义main方法,请运用TestMain运转待测试的类,假设曾经定义了, 那么它应该写在类的底部;4、程序中用到的资源,比如文件流、数据库衔接等,要遵照哪里获取哪里释放的原那么;5、PrintStream 曾经被不赞成deprecated运用,用 PrintWrite 来替代她。JSP规范JSP文件名命名规那么以功能称号+操作称号作为JSP文件称号,例如用户管理的用户维护的功能称号为USER_MANAGE_MAINTAIN,当前操作称号为添加,那么该JSP的称号为userManage

39、MaintainAdd.jsp操作称号一览表:操作称号代码添加Add修正Modify明细Detail删除Delete查询Search审核操作Audit列表ListJSP头格式JSP头部普通需求遵照以下格式:/ jdk规范包 / java扩展包 /运用的外部库的包 /运用的工程的公共包 /运用的模块的其他包 /include其他的jsp JSP页面中按钮的快捷键操作称号快捷键查询ALT + Q保管ALT + S笔数ALT + S笔数和金额ALT + S前往ALT + R修正确认ALT + C回绝ALT + X请示删除ALT + D确认ALT + C新建ALT + A停用ALT + T导入ALT

40、+ I导出ALT + E高级ALT + ASERVLET命名规那么以功能编号+Servlet作为Servlet的称号,例如用户管理的用户维护的功能编号为USER_MANAGE_MAINTAIN,当前操作称号为添加,那么该Servlet的称号为UserManageMaintainServlet?method=add,操作的称号列表主要包括以下几种:HTML格式1、HTML头普通需求遵照以下格式:some title/some javascript留意:必需指定一个有意义的,严禁出现“untitled或“未命名之类的。2、输入框的maxlength属性对于text类型的输入域,必需根据数据库字段的

41、长度设置相应的maxlength,例如数据库类型是VARCHAR(64),那么maxlength是32(由于中文阅读器对于中文也以为是一个字符)。web.xml书写规范1、在web.xml中,将新添加的元素,放在同类元素的最下面,并用注释阐明;2、web.xml的servlet-mapping元素中servlet-name与url-pattern值坚持一致;3、要坚持web.xml有良好的格式,每级元素与上级元素坚持一个TAB4个空格的缩进;其他规范1、限制session的运用在代码中运用session需求听取工程经理的意见,工程经理需求在设计文档中登记工程中一切运用到的session的名字和作用。2、假设是待提交的参数含有中文,或参数过多,过长,用post方式,不用get方式;数据库规范命名规那么根本规那么1、一切标识符全部采用英文大写,表名以名词或名词词组命名,多个名词间以下划线分隔。2、表名以TBL_开头、存储过程以PR_开头、视图以VIEW_开头、触发器以TRIG开头,索引以IDX_开头。3、字段称号尽量不用缩写。4、字段称号长度在16个字符以下。常用称号字段称号称号缩写xx

温馨提示

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

评论

0/150

提交评论