試題四(共25分)
閱讀以下關于面向對象系統(tǒng)建模的敘述,在答題紙上回答問題1至問題3。
某軟件企業(yè)為影音產品銷售公司W開發(fā)一套在線銷售系統(tǒng),以提升服務的質量和效率。項目組經過討論后決定采用面向對象方法開發(fā)該系統(tǒng)。在設計建模階段需要滿足以下設計要求:
(1)W公司經常進行促銷活動。根據不同的條件(如訂單總額、商品數量、產品種類等),公司可以提供百分比折扣或現(xiàn)金減免等多種促銷方式供提交訂單的用戶選擇。實現(xiàn)每種促銷活動的代碼量很大,且會隨促銷策略不同經常修改。系統(tǒng)設計中需要考慮現(xiàn)有的促銷和新的促銷,而不用經常地重寫控制器類代碼。
(2)該在線銷售系統(tǒng)需要計算每個訂單的稅率,不同商品的稅率及計算方式會有所區(qū)別。所以W公司決定在系統(tǒng)中直接調用不同商品供應商提供的稅率計算類,但每個供應商的類提供了不同的調用方法。系統(tǒng)設計中需要考慮如果公司更換了供應商,應該盡可能少地在系統(tǒng)中修改或創(chuàng)建新類。
項目組架構師決定采用設計模式來滿足上述設計要求,并確定從當前已經熟練掌握的設計模式中進行選擇,這些設計模式包括:適配器模式( Adapter)、構造器模式(Builder)、命令模式(Command)、外觀模式(Facade)、中介模式(Mediator)、原型模式( Prototype)、代理模式(Proxy)、狀態(tài)模式(State)和策略模式(Strategy)等。
【問題1】(6分)
設計模式按照其應用模式可以分為三類:創(chuàng)建型、結構型和行為型,請用200字以內文字說明三者的作用。
【問題2】 (9分)
請將項目組已經掌握的設計模式按照其作用分別歸類到創(chuàng)建型、結構型和行為型模式中。
【問題3】 (10分)
針對題目中所提出的設計要求(1)和(2),項目組應該分別選擇何種設計模式?請分別用200字以內文字說明具體的解決方案。