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