封装和信息隐藏在软件开发中是两个密切相关但又有区别的概念。 将相互关联的数据和逻辑分到一组,定义为一个模块;或者说用模块将关联性较强的数据和逻辑包裹起来的做法称为封装。 封装有以下优点: 程序员封装时应仅添加相关元素,决不能让无关的元素混入模块中。 信息隐藏则是对使用模块的用户隐藏模块实现相关的信息,包括模块内的数据,函数是用何种逻辑实现功能的。 程序员要让外部无法直接访问模块内的数据,而模块内的函数也尽量不公开,让用户只能通过最低限度公开的函数来操作模块。 信息隐藏有以下优点: 减少接口的代码量 让信息交互变得更简洁 降低代码的复杂程度 模块的使用方法变得简单 模块内部的修改就越不容易影响到外部
封装与信息隐藏是有区别的: 目的:封装的目的是将数据和操作数据的方法绑定在一起,形成一个对象。这样做的好处是可以将复杂的系统分解成更小、更易于管理的单元,同时提高了代码的可重用性。信息隐藏则更多地关注于保护对象的内部状态,防止外部直接访问和修改,从而减少错误和滥用的可能性。 实现方式:封装通常通过类和对象来实现,它将数据(属性)和行为(方法)封装在一个单独的实体中。信息隐藏则是通过设置访问修饰符(如private、protected等)来限制对类成员的访问,确保只有类自身或授权的代码可以访问敏感数据。 关注点:封装关注的是如何组织代码以提供清晰的接口和简化复杂性,而信息隐藏关注的是如何保护程序的完整性和可靠性,防止外部干扰。
这正是: 面向对象好技术,封装信息来隐藏 只要它们用的好,写出代码特别棒 参考书目:编程的原则:改善代码质量的101个方法,作者:上田勋,译者: 支鹏浩,出版社: 人民邮电出版社
|