抽象数据类型的设计原则 — 软件工程选择题
题目
某团队为一个「学籍管理」模块设计抽象数据类型 StudentRecord。方案甲:将所有字段(姓名、学号、各科成绩、学分绩点)均声明为 public,外部代码可直接读写任一字段;方案乙:将字段全部设为 private,仅对外暴露 getGPA()、updateScore(course, score) 两个操作,且 updateScore 内部负责校验成绩合法性并同步重算 GPA。从抽象数据类型的设计原则(信息隐藏与封装、通过操作访问表示、表示不变式可维护性)来看,下列判断正确的是:A. 方案甲更好,因为直接访问字段效率更高 B. 方案乙更好,因为它隐藏了内部表示,所有状态变更都经过操作进行,能维护表示不变式 C. 两者等价,关键取决于编程语言 D. 方案甲更好,因为字段越多越开放越符合抽象原则