第10章 類(lèi)層次和線程處理C++組件
集合類(lèi)和容器類(lèi)最常用的地方是線程間通訊。
為了設(shè)計(jì)多線程類(lèi),我們至少需要6個(gè)基本組件:
1、宿主類(lèi)(host class)
2、線程類(lèi)(thread class)
3、互斥和事件類(lèi)(mutex and event class)
4、友元成員函數(shù)(friend member function)
5、域類(lèi)(domain class)
6、強(qiáng)制轉(zhuǎn)換基本元素(casting primitive)
應(yīng)用框架分解
應(yīng)用框架總是至少分解為兩個(gè)主要組件。第一個(gè)為框架設(shè)計(jì)者提供的框架部分。這個(gè)組件包含按一般性方式捕獲的特定動(dòng)作序列以及對(duì)象間的關(guān)系,它表示某問(wèn)題類(lèi)別的一種常見(jiàn)解決方案。第二個(gè)組件成為ensemble。ensemble具體表現(xiàn)域知識(shí)、專(zhuān)家知識(shí)、規(guī)則以及特定解決方案的策略(The Power of Frameworks, Taligent)。ensemble由框架的用戶(hù)提供。框架本身提供了應(yīng)用的形式。
指定動(dòng)作序列由三類(lèi)函數(shù)類(lèi)型來(lái)實(shí)現(xiàn)。一是虛函數(shù),二是純虛函數(shù),三是常規(guī)函數(shù)。