本文共 514 字,大约阅读时间需要 1 分钟。
本节书摘来自异步社区出版社《C++面向对象高效编程(第2版)》一书中的第章,第2.2节,作者: 【美】Kayshav Dattatri,更多章节内容可以访问云栖社区“异步社区”公众号查看。
C++面向对象高效编程(第2版)
数据抽象的目的是,提供清晰和充足的接口,在方便且受控的模式下允许用户访问底层实现。接口应满足用户使用对象的基本需求。我们的唯一目标是:牢记客户,为让她们的生活更加舒适而不懈努力。因此,抽象的首要目标是,为客户简化操作。仅为讨论需要,假定我们设计的LD播放机未提供STOP按钮,会怎样?它将永远播放一张碟片!只有切断电源才能让播放机停止播放。可见,没有STOP按钮的接口不足以满足用户的基本要求。大多数情况下,如果现有接口无法满足用户需求,用户都倾向于绕过所有的安全和保护,直接干扰内部运作。设计良好的接口不应该出现这样的问题。当且仅当接口能满足用户需求时,该抽象才是设计良好的抽象。
同理,如果我们的设计未提供SEARCH按钮,这样的接口也不充足。LD播放机的用户,有权播放碟片中任意选定部分的图像。要求用户只能按照从头到尾的顺序观看完全不合理。
转载地址:http://dcqwa.baihongyu.com/