面向对象实现与设计的一致性 — 软件工程选择题
题目
某设计模型中定义了 Order 类,其状态图包含「待支付→已支付→已发货」三个状态,事件 pay() 触发从「待支付」到「已支付」的迁移,且标注守卫条件为 amount 已结清。以下实现代码片段中,最能体现实现与该设计模型一致性的是( )
A. Order 类中提供 pay() 方法,方法内先检查 amount 是否已结清,通过后将状态字段更新为「已支付」,否则拒绝迁移
B. Order 类中提供 checkout() 方法,方法内直接将状态字段更新为「已发货」,不检查 amount
C. Order 类中不设置状态字段,由外部程序在数据库中记录订单进度
D. Order 类中提供 pay() 方法,方法内打印日志后不做任何状态变更