在c語言中就不考慮封裝了,考慮封裝會導致**易讀性下降
1、與c++相同,抽象出公共介面,該步很關鍵
2、定義乙個結構體,其成員為這些公共介面的函式指標。
3、具體的類如page,line等,第乙個元素的型別必須是上述介面結構體(的指標),其它的做為結構體的私有資料放在後邊。
4、該方法的缺點是「每個物件」都包含了上述結構體,當物件很多時會造成較多的記憶體浪費。
改進方法是在物件中定義介面結構體,改為定義介面結構體的指標,由於需要從ctx位址得到
整個結構體的位址,因此使用了多重指標。
以組合遞迴模式為例:
改進方法附後
struct context
struct text
struct line
struct page
int main(void)
由於每個物件都包含了介面結構體,如果介面數量和物件數量都很多,會造成大量記憶體浪費,
改進方法是使用指標,使記憶體占用降低至4位元組。
struct context
struct text
struct line
struct page
struct context text_intf =
;struct context line_intf =
;struct context page_intf =
;int main(void)
設計模式在vue中的應用(二)
目錄整理 設計模式在vue中的應用 一 設計模式在vue中的應用 二 設計模式在vue中的應用 三 設計模式在vue中的應用 四 設計模式在vue中的應用 五 設計模式在vue中的應用 六 這篇內容比較簡單只涉及到乙個設計模式 狀態模式。來自iview文件截圖 在服務端輸出頁面的開發模式下每完成一步...
設計模式 工廠在收費系統中的應用
抽象工廠 abstract factory 提供乙個建立一系列相關或相互依賴物件的結構,而無需指定他們具體的類。抽象工廠uml圖 abstractproducta和abstractproductb是兩個抽象產品,它們可能是兩種不同的實現。在機房收費系統中可以理解為對兩個表的不同操作。而product...
設計模式 在軟體開發中的應用
論設計模式在軟體開發中的應用 在解決這個論題之前,我們首先要了解設計模式的概念,及其基本的分類。設計模式 這四個字,相信大家在很多地方都會看到,什麼是設計模式呢?乙個設計模式提供一種提煉子系統或軟體系統中的元件的,或者它們之間的關係的綱要設計。設計模式描述普遍存在的在相互通訊的元件中重複出現的結構,...