一句話:資料與操作分離。
類只負責操作字典,來減少類中所包含的主要起pojo作用的成員。
我想了想,可能這樣進行輸出的時候,資料組織的規則可以避免和類的結構進行耦合,只不過由於完全通過字典進行資料組織,字典本身的結構是另一種沒有被類的層級關係描述的規則
另外一篇 手記 提到了這幾個類的關係。皆位於org.apache.pdfbox.pdmodel
中。
感興趣可以繼續往下看。
通過初始化其成員cosdocument document
,
及該成員內部成員cosdictionary trailer
。
以字典樹(value 包含乙個 字典) 形式組織資料。
public
pddocument()
public
pddocument
(memoryusagesetting memusagesetting)
catch
(ioexception ioe)
catch
(ioexception ioe2)
}
document =
newcosdocument
(scratchfile)
; pdfsource = null;
// first we need a trailer
cosdictionary trailer =
newcosdictionary()
; document.
settrailer
(trailer)
;// next we need the root dictionary.
cosdictionary rootdictionary =
newcosdictionary()
; trailer.
setitem
(cosname.root, rootdictionary)
; rootdictionary.
setitem
(cosname.type, cosname.catalog)
; rootdictionary.
setitem
(cosname.version, cosname.
getpdfname
("1.4"))
;// next we need the pages tree structure
cosdictionary pages =
newcosdictionary()
; rootdictionary.
setitem
(cosname.pages, pages)
; pages.
setitem
(cosname.type, cosname.pages)
; cosarray kidsarray =
newcosarray()
; pages.
setitem
(cosname.kids, kidsarray)
; pages.
setitem
(cosname.count, cosinteger.zero)
;
此類的構造呼叫時機在pddocument.getpddocumentcatalog()中
:
1).如果由pddocument
物件構建,那麼將其儲存在成員物件pddocument document
中,作為上級物件儲存。並建立cosdictionary
物件向上註冊給document.trailer
作為root
。
2).如果傳過來pddocument document
和cosdictionary root
,那就不重建root
。
**如下:
public
pddocumentcatalog
(pddocument doc)
public
pddocumentcatalog
(pddocument doc, cosdictionary rootdictionary)
pddocumentcatalog
其實就是pddocument
中的非成員變數cosdictionary root
的資料操作類。
以此類推,pdpagetree
實際上是pddocument
中的非成員變數cosdictionary pages
的資料操作類。從其建構函式可以發現一樣的構造邏輯。
pdpage
則是擁有成員cosdictionary page
,裝載單個頁面所需要的全部東西。
當然,還是秉持乙個規則。類 操作 字典。
Hadoop HDFS資料組織
hadoop培訓內容 hdfs資料組織,1.資料塊,2.staging,3.流水線式的複製 1.資料塊 hdfs最適合的應用場景是處理大資料集合,同時這些應用多是一次寫入多次讀取,並且讀的速度要滿足流式讀,即write once read many的語義。乙個典型的block大小是64mb,因此檔案...
檔案資料組織
資料庫的基本概念 二 曾士熊 原文 http www.ascc.sinica.edu.tw nl 83 1009 section3 3.html 劉建文整理 http blog.csdn.net keminlau 本文接第10個卷08期68頁 常見的電腦檔案包括 可執行程式檔案,批處理檔案,文字檔案...
重新組織資料
將乙個值用於多個用途,就是催生混亂與bug的溫床 1.拆分變數 如果乙個變數有多個用途,就為每個用途宣告乙個變數。還有,如果要對引數改值,也先複製乙份,對副本改值,返回副本。2.字段改名 給字段取乙個準確的名字。好的命名及資料分布,能讓別人只看類的字段就理解這些類的行為。3.以查詢取代派生變數 盡量...