閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
說明:一個(gè)簡(jiǎn)單的圖形編輯器提供給用戶的基本操作包括:創(chuàng)建圖形、創(chuàng)建元素、選擇元素以及刪除圖形。圖形編輯器的組成及其基本功能描述如下。
(1)圖形由文本元素和圖元元素構(gòu)成,圖元元素包括線條、矩形和橢圓。
(2)圖形顯示在工作空間中,一次只能顯示一張圖形(即當(dāng)前圖形,current)。
(3)編輯器提供了兩種操作圖形的工具:選擇工具和創(chuàng)建工具。對(duì)圖形進(jìn)行操作時(shí),一次只能使用一種工具(即當(dāng)前活動(dòng)工具,active)。
①創(chuàng)建工具用于創(chuàng)建文本元素和圖形元素。
②對(duì)于顯示在工作空間中的圖形,使用選擇工具能夠選定其中所包含的元素,可以選擇一個(gè)元素,也可以同時(shí)選擇多個(gè)元素。被選擇的元素成為當(dāng)前選中元素(selected)。
③每種元素都具有相應(yīng)的控制點(diǎn)。拖曳選定元素的控制點(diǎn),可以移動(dòng)元素或者調(diào)整元素的大小。
現(xiàn)采用面向?qū)ο蠓椒ㄩ_發(fā)該圖形編輯器,使用UML進(jìn)行建模。構(gòu)建出的用例圖和類圖分別如圖10.39和圖10.40所示。
問題1:根據(jù)說明中的描述,給出圖10.39中U1和U2所對(duì)應(yīng)的用例,以及(1)和(2)處所對(duì)應(yīng)的關(guān)系。
問題2:根據(jù)說明中的描述,給出圖10.40中缺少的C1~C8所對(duì)應(yīng)的類名以及(3)~(6)處所對(duì)應(yīng)的多重度。
問題3:圖10.40中的類圖設(shè)計(jì)采用了橋接(Bridge)設(shè)計(jì)模式,請(qǐng)說明該模式的內(nèi)涵。
閱讀下列說明和Java代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
說明:某大型商場(chǎng)內(nèi)安裝了多個(gè)簡(jiǎn)易的紙巾售賣機(jī),自動(dòng)售出2元錢一包的紙巾,且每次僅售出一包紙巾。紙巾售賣機(jī)的狀態(tài)如圖10.37所示。采用狀態(tài)(State)模式來實(shí)現(xiàn)該紙巾售賣機(jī),得到如圖10.38所示的類圖。
其中類State為抽象類,定義了投幣、退幣、出紙巾等方法接口。類SoldState、SoldOutState、NoQuarterState和HasQuarterState分別對(duì)應(yīng)圖10.37中紙巾售賣機(jī)的4種狀態(tài):售出紙巾、紙巾售完、沒有投幣、有2元錢。
Java代碼如下:
閱讀下列說明和C++代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
說明:某大型商場(chǎng)內(nèi)安裝了多個(gè)簡(jiǎn)易的紙巾售賣機(jī),自動(dòng)售出2元錢一包的紙巾,且每次僅售出一包紙巾。紙巾售賣機(jī)的狀態(tài)如圖10.35所示。采用狀態(tài)(State)模式來實(shí)現(xiàn)該紙巾售賣機(jī),得到如圖10.36所示的類圖。其中類State為抽象類,定義了投幣、退幣、出紙巾等方法接口。類SoldState、SoldOutState、NoQuarterState和HasQuarterState分別對(duì)應(yīng)圖10.35中紙巾售賣機(jī)的4種狀態(tài):售出紙巾、紙巾售完、沒有投幣、有2元錢。
C++代碼如下: