刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

题目二
阅读以下在线订餐管理系统的数据流图,在答题纸上回答问题1至问题3。

阅读以下关于面向对象系统建模的叙述,回答问题。

【说明】

某软件企业为车载产品销售公司W开发一套在线销售系统,以提升服务的质量和效率。项目组经过讨论后决定采用面向对象方法开发该系统。在设计建模阶段需要满足以下设计要求:

W公司经常进行促销活动。根据不同的条件(如车型、配饰种类、商品数量、产品种类等),公司可以提供百分比折扣或现金减免等多种促销方式供提交订单的用户选择。实现每种促销活动的代码量很大,且会随促销策略不同经常修改。系统设计中需要考虑现有的促销和新的促销,而不用经常地重写控制器类代码。

该在线销售系统需要计算每个订单的税率,不同商品的税率及计算方式会有所区别。所以W公司决定在系统中直接调用不同商品供应商提供的税率计算类,但每个供应商的类提供了不同的调用方法。系统设计中需要考虑如果公司更换了供应商,应该尽可能少地在系统中修改或创建新类。

项目组架构师决定采用设计模式来满足上述设计要求,并确定从当前已经熟练掌握的设计模式中进行选择,这些设计模式包括:适配器模式(Adapter)、构造器模式(Builder)、命令模式(Command)、外观模式(Facade)、中介模式(Mediator)、原型模式(Prototype)、代理模式(Proxy)、状态模式(State)和策略模式(Strategy)等。

针对在线销售系统的设计要求,根据所给的设计要求,为促销活动选择和税率计算部分选择适当的设计模式,并简述选择的理由。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

(1)策略模式

解决方案:在具有公共接口的独立类中定义每个计算。可以利用该模式创建各种促销类,它们从同一个超类继承。每个类都有相同名称的标准接口方法,用于根据订单编号计算将要折扣的金额总数。计算每个促销的内部代码对促销类来说完全不同。

(2)适配器模式

解决方案:增加一个类作为适配器,转换类的接口到客户端类期望的另一个接口。实现一个适配器类,这个类为系统的其他部分提供了一个不变的方法供调用,为了集成不同商品供应商提供的税率计算类,编写一个适配器类的子类,包含调用购买类所需的代码。该子类将系统的调用映射到某个供应商的税率计算类。如果要更换供应商,那么只需要写一个新的适配器子类,其他保持不变。

解析:

(1)对于第一个设计要求,由于存在多种促销方式且实现代码量大并经常修改,策略模式是最合适的选择。策略模式允许在运行时根据具体情况选择不同的算法(在这里是促销方式),避免了在控制器类中嵌入大量的条件判断逻辑,提高了系统的灵活性和可维护性。

(2)对于第二个设计要求,由于系统需要与不同的商品供应商进行交互,而每个供应商的接口可能不同,这就需要使用适配器模式。适配器模式可以将一个类的接口转换为另一个接口,使得原本不兼容的类能够协同工作。在这个场景中,适配器模式可以确保系统对不同供应商的税率计算类进行统一调用,即使更换了供应商,也只需要创建新的适配器类,而不需要在系统中进行大规模的修改。

创作类型:
原创

本文链接:针对在线销售系统的设计要求,根据所给的设计要求,为促销活动选择和税率计算部分选择适当的设计模式,并简

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share