gpt4 book ai didi

encapsulation - 抽象VS信息隐藏VS封装

转载 作者:行者123 更新时间:2023-12-03 04:19:09 25 4
gpt4 key购买 nike

你能告诉我软件开发中的抽象信息隐藏有什么区别吗?

我很困惑。抽象隐藏了细节实现信息隐藏抽象了事物的全部细节。

更新:我找到了这三个概念的一个很好的答案。 See the separate answer below多次引用自 there .

最佳答案

去源头吧! Grady Booch 说(《面向对象的分析与设计》,第 49 页,第二版):

Abstraction and encapsulation are complementary concepts: abstraction focuses on the observable behavior of an object... encapsulation focuses upon the implementation that gives rise to this behavior... encapsulation is most often achieved through information hiding, which is the process of hiding all of the secrets of object that do not contribute to its essential characteristics.

换句话说:抽象=外部的对象;封装(通过信息隐藏实现)=对象内部,

示例:在 .NET Framework 中,System.Text.StringBuilder 类提供了对字符串缓冲区的抽象。这种缓冲区抽象允许您使用缓冲区而无需考虑其实现。因此,您可以将字符串附加到缓冲区,而无需考虑 StringBuilder 内部如何跟踪指向缓冲区的指针以及在缓冲区满时管理内存(这是通过封装来实现的)通过信息隐藏)。

rp

关于encapsulation - 抽象VS信息隐藏VS封装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com