封装它

封装的真正目的是在一个地方收集与某个实体的设备有关的知识,处理规则以及使用它的操作。 封装的出现比人们普遍认为的要早得多。 C程序中的模块是封装。 汇编程序是封装的。

封装的反面是在整个程序中传播有关某种功能的知识。

在实现行为时,有时我们会从几个等效的选项中进行选择。 将来,在环境变化的影响下,被拒绝的选项之一的权重可能会增加,较早选择和实施的选项将不会成功。 如果将所选选项的实施的绝对所有细节都集中在一个地方,则更改决策将容易得多。

示例:使用货币值。 在许多电子商务系统中,货币值被实现为浮点数已经不是什么秘密了。 我认为我们所有人都知道,只要简单地将两个表示为浮点变量的“整数”数字相加,就可以形成“略非整数”。 因此,利用这种实现,必须在这里和那里插入一个舍入函数调用。 这是整个程序中有关实体结构的知识的涂抹。 这种情况下的封装是将一个货币表示为浮点值,并且必须在最无辜的操作中不断对其进行舍入的知识,在一个地方收集(隐藏)。 隐藏,以便在使用实体“金钱”时,甚至不输入舍入问题。 使用封装,将“金钱”的实现从浮点数替换为定点数将没有问题。

Source: https://habr.com/ru/post/zh-CN435900/


All Articles