这个包下面有这么多类为啥这样设计呢?
像pdftable和pdfCell,都是操作table的为啥没有单独在pdf packege下面开一个table的包分类呢。
这样大量的类在同一个包下都很难找哇
回答:
这不是设计的问题,而是 java
语言规范所要求的,类必须在包 package
中
如果题主的疑惑点是为什么 com.itextpdf.text.pdf
包下面有这么多类,这个是由功能决定, itextpdf
提供了对 pdf 的深度操作,对 pdf 支持的操作越多,必然导致类越多啊,难道全挤在一个类里实现么
换句话说,它们都已经是难以再拆分的 独立 功能了,这样的功能就是有这么多,比如:
PdfWriter
:用于将内容写入到PDF文件中,可以创建新文件或向已存在的文件添加内容。PdfReader
:用于读取和解析现有的PDF文件,可以提取文本、图像等元素,并对其进行处理。PdfPTable
:用于创建和管理表格结构,在PDF文档中添加复杂的表格布局。PdfPCell
:代表单元格对象,可以设置单元格样式、边框、背景色等属性。Paragraph
:代表一个段落对象,在PDF文档中添加文字内容,支持多种排版样式。Phrase
:代表一个短语对象,类似于Paragraph但更简单。通常作为段落中的一部分使用。PdfContentByte
:提供绘制图形和图像操作的方法,如绘制线条、填充颜色、插入图像等。PdfAction
:用于创建PDF中的交互动作,如链接、书签跳转、页面跳转等。PdfAnnotation
:代表PDF中的注释对象,可以添加各种注释类型,如文本框、批注、高亮等。Chunk
:代表最小单位的文本块,可设置字体、颜色、大小等属性,并在段落或短语内使用。Font
:用于定义字体样式和属性,如字体类型(宋体、微软雅黑)、字号、加粗等。BaseFont
:处理基础字体信息,支持从系统字体或外部TTF/OTF文件加载自定义字体。- ... ...
它们都已经是具体的实现了,不能 再拆分或融合
这不是通过设计能避免的,而是由功能或者说需求的 最大公约数 决定的,如果题主对 iText
的源码设计感兴趣,可以参考以下站点
参考
iText官方文档
iText官方博客
iText白皮书
iText网络研讨会
回答:
这不是设计的问题,而是 java 语言规范所要求的,类必须在包 package 中
如果题主的疑惑点是为什么 com.itextpdf.text.pdf 包下面有这么多类,这个是由功能决定, itextpdf 提供了对 pdf 的深度操作,对 pdf 支持的操作越多,必然导致类越多啊,难道全挤在一个类里实现么
换句话说,它们都已经是难以再拆分的 独立 功能了,这样的功能就是有这么多,比如:
PdfWriter:用于将内容写入到PDF文件中,可以创建新文件或向已存在的文件添加内容。
PdfReader:用于读取和解析现有的PDF文件,可以提取文本、图像等元素,并对其进行处理。
PdfPTable:用于创建和管理表格结构,在PDF文档中添加复杂的表格布局。
PdfPCell:代表单元格对象,可以设置单元格样式、边框、背景色等属性。
Paragraph:代表一个段落对象,在PDF文档中添加文字内容,支持多种排版样式。
Phrase:代表一个短语对象,类似于Paragraph但更简单。通常作为段落中的一部分使用。
PdfContentByte:提供绘制图形和图像操作的方法,如绘制线条、填充颜色、插入图像等。
PdfAction:用于创建PDF中的交互动作,如链接、书签跳转、页面跳转等。
PdfAnnotation:代表PDF中的注释对象,可以添加各种注释类型,如文本框、批注、高亮等。
Chunk:代表最小单位的文本块,可设置字体、颜色、大小等属性,并在段落或短语内使用。
Font:用于定义字体样式和属性,如字体类型(宋体、微软雅黑)、字号、加粗等。
以上是 这个包下面有这么多类为啥这样设计呢? 的全部内容, 来源链接: utcz.com/p/945265.html