抽象数据类型的设计原则 — 软件工程选择题
题目
某团队为多项式设计抽象数据类型 Polynomial,对外操作包括 add(p)、multiply(p)、evaluate(x)、degree()。最初规范中 evaluate(x) 的描述是「返回多项式在 x 处的值」。评审时有人建议将其改为「若内部用系数数组按升幂存储,则从下标 0 开始累加 coef[i]*x^i;若用稀疏表示,则遍历非零项累加」。根据抽象数据类型的设计原则,这个修改建议存在的主要问题是:
A. 没有定义 degree() 的行为,导致规范不完整
B. 规范描述了内部实现细节,而不是外部可观察行为
C. 没有提供修改系数的操作,违反了操作完备性原则
D. evaluate 应返回多项式而不是数值,违反了类型一致性