(第十章)乙個xml解析器和構造器

2021-09-01 16:19:41 字數 934 閱讀 7345

本章的前兩節「10.1 狀態機」、「10.2builder 模式」其實都涉及到設計模式裡面的內容。

10.1狀態機主要講解如何繪製狀態圖,以及根據狀態圖編寫**,但是作者並沒有用到state模式進行編碼,而是採用了比較結構化的編碼方式。關於如何使用state模式,見我的部落格「設計模式」專題。

10.2 builder模式主要介紹了 builder模式的使用,他比我在「設計模式」專題中的builder講解得清楚,因此很有借鑑意義。

這兩節的內容都融匯在10.2節的**中。這個**的目的是要「解析」xml檔案的資訊然後「處理」解析出來的資訊builder模式的作用正是在將「解析xml_parser」和「處理xml_builder」資料的過程分離開來!

makefile

typedef.h

xml_parser.hxml解析器標頭檔案

xml_parser.cxml解析器原始碼

xml_builder.hxml處理器介面

xml_builder_dump.hxml_builder_dump.cxml處理器實現之一(輸出美化格式)

xml_tree.hxml_tree.cxml樹節點及其操作封裝(下面要用到)

xml_builder_tree.hxml_builder_tree.cxml處理器實現之二(構造xml樹)

xml_parser_test.c測試程式

第十章 迭代器

迭代器 我們已經知道,可以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別,如list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function。這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable。...

第十章 再探迭代器

1.插入迭代器 back inserter 插入時呼叫push back 容器得支援 front inserter 插入時呼叫push front 容器得支援,copy演算法作為目標容器會使序列顛倒 inserter inserter 容器,迭代器 表示插入的位置 例 it是由inserter生成的...

核心程式設計(第十章)巢狀函式,裝飾器

例10.1 usr bin env python encoding utf 8 import ipdb defsafe float obj safe version of float try retval float obj except valueerror,typeerror diag retv...