下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
试卷 > 软考高级 > 系统分析师 > 2026下半年软考系统分析师模考试卷(案例分析)及答案解析 > 本题我的试卷
试题一(15分) 阅读以下说明,回答问题1至问题3。 【说明】 某在线教育平台拟开发一套课程订单管理系统,支持课程下单、支付、订单状态流转、订单通知等功能。系统采用面向对象方法进行设计,在设计建模阶段提出如下需求: (1)订单优惠计算:系统需根据订单金额、会员等级、促销活动等条件,提供满减、折扣、优惠券等多种优惠方式,优惠策略经常调整,新增优惠策略时不得修改订单处理核心代码; (2)支付渠道对接:系统需支持微信支付、支付宝、银联等多种支付渠道,各渠道提供的支付接口(SDK)调用方式各不相同,更换或新增支付渠道时应尽量减少对系统其他部分的修改; (3)订单状态流转:订单具有"待支付、已支付、待发货、已发货、已完成、已取消"等状态,不同状态下对订单执行支付、发货、取消等操作的行为不同,且状态转换规则复杂、后期可能增加新状态; 项目组已掌握以下设计模式:Builder(构建器)、Singleton(单例)、Prototype(原型)、Adapter(适配器)、Facade(外观)、Strategy(策略)、Observer(观察者)、State(状态)、Command(命令)。

【问题2】(5分)针对需求(1)订单优惠计算和需求(2)支付渠道对接,请分别选择最合适的设计模式,各用200字以内的文字说明解决方案。

参考答案
需求(1)订单优惠计算:选择策略模式(Strategy)。 解决方案:定义优惠策略接口(如DiscountStrategy),声明计算优惠的方法。将满减、折扣、优惠券等每种优惠方式封装为独立的策略类,实现优惠策略接口。订单类持有一个优惠策略对象,在计算价格时委托给策略对象处理。新增优惠方式时只需新增一个策略类,不需要修改订单核心代码,符合开闭原则。 需求(2)支付渠道对接:选择适配器模式(Adapter)。 解决方案:定义统一的支付接口(PaymentGateway),声明支付、退款等方法。为每个支付渠道(微信、支付宝、银联)编写适配器类,实现支付接口,在适配器内部调用各渠道SDK的不同接口进行转换。订单系统只依赖统一支付接口,新增支付渠道时只需新增对应适配器类,不影响系统其他部分。
答案解析
本题暂无答案解析,正确答案已在上方给出。