分享

封装和信息隐藏

 东北十三少 2024-05-10 发布于四川

封装和信息隐藏在软件开发中是两个密切相关但又有区别的概念。

将相互关联的数据和逻辑分到一组,定义为一个模块;或者说用模块将关联性较强的数据和逻辑包裹起来的做法称为封装。

封装有以下优点:

  • 模块中不存在不相关的元素,代码可读性提高

  • 修改带来的影响被限制在模块内

  • 影响程度明确,代码更易于修改

  • 各个模块都是独立的零件,便于重复使用

  • 数据和逻辑分割成了小单位的模块,便于我们处理复杂问题

程序员封装时应仅添加相关元素,决不能让无关的元素混入模块中。

信息隐藏则是对使用模块的用户隐藏模块实现相关的信息,包括模块内的数据,函数是用何种逻辑实现功能的。

程序员要让外部无法直接访问模块内的数据,而模块内的函数也尽量不公开,让用户只能通过最低限度公开的函数来操作模块。

信息隐藏有以下优点:

  • 减少接口的代码量

  • 让信息交互变得更简洁

  • 降低代码的复杂程度

  • 模块的使用方法变得简单

  • 模块内部的修改就越不容易影响到外部

封装与信息隐藏是有区别的:

  • 目的:封装的目的是将数据和操作数据的方法绑定在一起,形成一个对象。这样做的好处是可以将复杂的系统分解成更小、更易于管理的单元,同时提高了代码的可重用性。信息隐藏则更多地关注于保护对象的内部状态,防止外部直接访问和修改,从而减少错误和滥用的可能性。

  • 实现方式:封装通常通过类和对象来实现,它将数据(属性)和行为(方法)封装在一个单独的实体中。信息隐藏则是通过设置访问修饰符(如private、protected等)来限制对类成员的访问,确保只有类自身或授权的代码可以访问敏感数据。

  • 关注点:封装关注的是如何组织代码以提供清晰的接口和简化复杂性,而信息隐藏关注的是如何保护程序的完整性和可靠性,防止外部干扰。

这正是:

面向对象好技术,封装信息来隐藏
只要它们用的好,写出代码特别棒

参考书目:编程的原则:改善代码质量的101个方法,作者:上田勋,译者: 支鹏浩,出版社: 人民邮电出版社

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多