如何理解信息隐藏与局部化?
一、信息隐藏
信息隐藏(Information Hiding)是指一个模块(例如组件或类)将实现细节隐藏在内部,仅通过受限的接口对外提供访问。信息隐藏在Java中叫做封装。一个典型的封装例子就是电视机。用户仅通过遥控器提供的按键进行操作,而看不到电视机内部的实现过程。
如果没有实现信息隐藏,而是将模块内部的实现细节都对外暴露,那么即使模分解得当也会造成不必要的模块间耦合。在面向对象软件设计与实现中,类以及类的属性和方法的访问修饰符(如public、private等)可以用来实现信息隐藏设置。例如,一个包(package)中作为“门面”(facade)让外部可见的一些类的访问修饰符可以设置为public,而其他对外隐藏的类可以设置为protected;一个类(class)中作为对外接口一部分的属性和方法(一般建议属性不要直接对外开放)可以设置为public,而其他对外隐藏属性和方法可以设置为private。
信息隐藏可以带来多个方面的好处。首先,信息隐藏通过屏蔽实现细节以及暴露抽象接口的方式降低了其他模块开发者对于当前模块的认知复杂性。其次,信息隐藏通过抽象降低了内部实现细节的变化对于其他模块的影响。最后,信息隐藏通过受控接口提供访问,可以更好地实现对于内部数据和操作的保护。
简单的说就是通过信息隐藏,用户仅通过所提供的方法和接口对其进行访问,而不必关心内部的具体细节,就好像这些细节对用户来说是“透明的”,从而更好地保护内部数据和操作。
二、局部化
局部化的概念和信息隐藏是密切相关的。
局部化是指把一些关系密切的软件元素物理地放得彼此靠近。
局部化有利于实现信息隐藏。
信息隐藏是通过隐藏模块内部实现细节,只通过有限的接口交互,降低耦合度并保护数据。在Java中体现为封装,如电视机用户只需用遥控器操作,不需了解内部工作原理。局部化则将紧密相关的元素物理靠近,有助于信息隐藏。这样做可以减少认知复杂性,降低变更影响,保护内部操作。
7112

被折叠的 条评论
为什么被折叠?



