oop - 有哪些不同类型的封装?

标签 oop encapsulation

有哪些不同类型的封装?

我认为这基本上是指抽象、多态和继承等核心 OO 概念是否正确?

我对封装的理解是它是一种隐藏数据/功能的方法,但我从来没有真正将多态性或继承视为一种封装形式,尽管我可以看到多态性如何被视为封装,因为它可以隐藏你对象的确切类型正在与之互动。

那么,您会说仅此而已,还是我缺少一些核心概念?

编辑我刚刚在评论中注意到有人提到它可能指的是私有(private)/公共(public)方法,也许我对这个问题的思考太多并期待一个比实际更复杂的答案?

最佳答案

你想太多我觉得。

http://en.wikipedia.org/wiki/Information_hiding

本文节选 :

计算机科学中的信息隐藏原理是在计算机程序中隐藏最有可能发生变化的设计决策,从而在设计决策发生变化时保护程序的其他部分免受更改。保护包括提供一个稳定的接口(interface),该接口(interface)将程序的其余部分与实现(最有可能改变的细节)隔离开来。

一种常见的封装形式是使用属性来隐藏私有(private)数据字段。一种更常见的形式是使用 OO 将软件的复杂性封装到具有角色和职责的良好划分的类中。这是 OO 的关键租户,因为它从单一的程序设计风格转变为更加结构化的风格,这种风格努力隐藏所有不相关的信息,除了与您正在处理的特定任务有关的信息。

关于oop - 有哪些不同类型的封装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/385361/

相关文章:

java - 将枚举方法链接到客户端类的成员变量

java - 提取准备好的语句逻辑的最干净的解决方案

Java - 与对象分配混淆

oop - 抽象类、接口(interface)、mixins

C#:将字段定义为私有(private)但可在泛型中修改

java - 私有(private)类变量与过多的参数传递

java - 不确定要在对象字符串变量中放入什么

java - 根据 2 个输入参数的子类型更改方法行为

javascript - 为什么 instanceof 在 Javascript 中为子对象返回 false

c++ - 从工厂创建的实例访问派生类的成员