第10章 類層次和線程處理C++組件
集合類和容器類最常用的地方是線程間通訊。
為了設(shè)計(jì)多線程類,我們至少需要6個(gè)基本組件:
1、宿主類(host class)
2、線程類(thread class)
3、互斥和事件類(mutex and event class)
4、友元成員函數(shù)(friend member function)
5、域類(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)題類別的一種常見(jiàn)解決方案。第二個(gè)組件成為ensemble。ensemble具體表現(xiàn)域知識(shí)、專家知識(shí)、規(guī)則以及特定解決方案的策略(The Power of Frameworks, Taligent)。ensemble由框架的用戶提供。框架本身提供了應(yīng)用的形式。
指定動(dòng)作序列由三類函數(shù)類型來(lái)實(shí)現(xiàn)。一是虛函數(shù),二是純虛函數(shù),三是常規(guī)函數(shù)。