" 抽象 和 封装 是互补的概念:抽象关注对象的可观察行为...封装关注引起这种行为的实现...封装最常见通过 信息隐藏 实现,这是隐藏对象的所有不影响其基本特征的 secret 的过程。” - 格雷迪·布奇 面向对象分析与设计
你能告诉我一些通过信息隐藏封装的好处的令人信服的例子吗?
最佳答案
我的第一个 OO 类(class)中给出的示例:
想象一个媒体播放器。它摘要 播放、暂停、快进等概念。作为用户,您可以使用它来操作设备。
您的 VCR 实现了这个接口(interface)和 隐藏 或 封装 机械驱动器和磁带的详细信息。
当一个新的实现 媒体播放器的到来(比如 DVD 播放器,它使用光盘而不是磁带)它可以替换实现 封装 在媒体播放器中,用户可以像使用 VCR 一样继续使用它(播放、暂停等相同的操作)。
这是 的概念信息隐藏通过抽象 .它允许在用户不必知道的情况下更改实现细节并促进低coupling的代码。
关于language-agnostic - 通过信息隐藏进行有效封装的绝妙例子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/635715/