首页 > 解决方案 > 没有 OOP 是否可以封装?

问题描述

我在一次采访中被问到一个问题:如果没有 OOP 封装是可能的,例如在程序语言中?

标签: ooplanguage-agnosticencapsulationprocedural-programming

解决方案


Bob Martin 曾表示,封装不仅可以在没有 OOP 的情况下实现,而且在 OOP 出现之前更好

这是他 2014 年在耶鲁管理学院发表的演讲的节选。

我们有完美的封装。在 C 中,您所要做的就是前向声明您的函数和数据结构。您不必实施它们。您将在头文件中转发声明它们,然后在 C 文件中实现它们。您的用户将使用#include您的头文件。他们看不到您的实施。完美封装。您的任何用户都无法看到您的任何数据值。他们所能看到的只是你的函数签名。他们可以看到您的数据结构的名称,但看不到您的数据结构中的任何成员。绝对完美的封装。


推荐阅读