试题一(15分)
阅读以下说明,回答问题1至问题3。
【说明】
某在线教育平台拟开发一套课程订单管理系统,支持课程下单、支付、订单状态流转、订单通知等功能。系统采用面向对象方法进行设计,在设计建模阶段提出如下需求:
(1)订单优惠计算:系统需根据订单金额、会员等级、促销活动等条件,提供满减、折扣、优惠券等多种优惠方式,优惠策略经常调整,新增优惠策略时不得修改订单处理核心代码;
(2)支付渠道对接:系统需支持微信支付、支付宝、银联等多种支付渠道,各渠道提供的支付接口(SDK)调用方式各不相同,更换或新增支付渠道时应尽量减少对系统其他部分的修改;
(3)订单状态流转:订单具有"待支付、已支付、待发货、已发货、已完成、已取消"等状态,不同状态下对订单执行支付、发货、取消等操作的行为不同,且状态转换规则复杂、后期可能增加新状态;
项目组已掌握以下设计模式:Builder(构建器)、Singleton(单例)、Prototype(原型)、Adapter(适配器)、Facade(外观)、Strategy(策略)、Observer(观察者)、State(状态)、Command(命令)。
【问题1】(5分)设计模式按目的划分为创建型、结构型、行为型三类。请用200字以内的文字分别说明三类设计模式的作用,并将项目组已掌握的9种设计模式按类别进行归类。
参考答案三类设计模式的作用:
1. 创建型模式:关注对象的创建机制,将对象的创建与使用分离,使系统不依赖对象如何被创建、组合和表示。
2. 结构型模式:关注类和对象的组合,通过组合对象形成更大的结构,实现接口适配和功能扩展。
3. 行为型模式:关注对象间的通信和职责分配,描述算法和流程的控制。
分类:
创建型:Builder(构建器)、Singleton(单例)、Prototype(原型)
结构型:Adapter(适配器)、Facade(外观)
行为型:Strategy(策略)、Observer(观察者)、State(状态)、Command(命令)