gpt4 book ai didi

oop - 封装、数据抽象和数据隐藏的精确解释

转载 作者:行者123 更新时间:2023-12-02 00:26:29 29 4
gpt4 key购买 nike

面向对象的概念:封装数据抽象数据隐藏是3个不同的概念,但彼此之间非常相关。所以我很难通过阅读互联网上的信息来完全理解这些概念。一个地方可用的信息与互联网上另一个地方的信息相矛盾。有人可以指导我阅读清楚解释这 3 个概念并指出这三者之间区别的教程吗?

最佳答案

首先,不要过于雄心勃勃,因为您说这 3 个概念是相关的(尤其是前两个)并且可以在许多情况下相互使用。正确使用它们比拥有完整的最终定义重要得多。

数据隐藏”就是在客户端和(部分)实现之间设置一堵墙。模块的一些对象可以是模块内部的并且对其用户不可见。因此,这是一种方式,一种避免依赖的方法。如果我不知道一件事是如何实现的,它的实现就会改变。

数据抽象”是将不同种类的数据重新组合到同一抽象之下。它接近协议(protocol)的想法。你不知道这个对象是如何实现的,但你知道它遵循一个众所周知的协议(protocol),即一组适用于不同类型数据的方法。在 python 中,类文件对象就是一个很好的例子。在 Java 中,人们使用接口(interface)。这很好,因为您需要学习的东西更少,还因为您可以在抽象级别检查某些属性,即在该抽象下重新组合的所有类型的数据。

封装”是关于在对象周围放置一个外壳以简化它们的使用。它与代码库中的对象可以在越来越低级别的层中重新组合的想法有关。层中的一个对象仅调用其下层的对象。例如,如果你想在屏幕上画一条线,线对象可能只封装了一个 openGL 上下文、像素绘制器和其他东西。这些较低级别的对象由线对象封装。请注意,当同一对象同时属于不同层时,可以将封装应用于同一对象,这并不好,但有时是不可避免的。例如,python中的类文件对象有高级/封装方法(open、close、read)和低级方法(seek)。

就是这样。显然,每个的定义都可以更广泛,但这使得这三个概念有点不同。

关于oop - 封装、数据抽象和数据隐藏的精确解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8755666/

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