1、什么是模块化,为什么要模块化?
模块化是指将一个大型软件系统或复杂的任务划分为多个独立的模块,在各个模块之间通过接口协作完成对应的功能。模块化有利于提高代码的可重用性、可维护性、可扩展性和可测试性、降低系统的复杂度和风险,避免代码重复和混乱。
2、衡量模块独立的定性标准是什么?用自己的话表达其含义
衡量模块独立的定性标准主要是耦合度和内聚度。耦合度是指模块间相互依赖的程度,低耦合度模块能够独立地被修改和测试,单元测试容易开展,不依赖其他模块;内聚度是指模块的一组行为是否彼此相关,高内聚度模块只实现单一的、大体相似的、紧密相关的功能,能够让模块内部代码之间相互配合;模块的耦合度越低,内聚度越高,模块的独立性越强。
3、如何理解信息隐藏和局部化?用自己的话或者例子表达其含义
信息隐藏(Information Hiding)和局部化(Localization)是软件设计中的关键概念。信息隐藏是指在模块中隐藏部分实现细节和数据结构,仅公开模块对外的接口和实现结果,同时对外提供适当的调用接口,避免外部的代码干扰模块的内部实现和逻辑,以此达到良好的封装效果,提高模块的内聚度和耦合度。局部化是指将系统中的实现细节、数据或功能尽可能的约束在单个模块或者某个特定层级下,从而减少整个系统的耦合度,方便维护和扩展。
举个例子,一个人出门需要一个包,包里装着他需要带的东西。这个包就是一个模块,里面的物品可以看作是所含的数据,人的手可以看作是对外提供的接口。对于这个包来说,实现细节和装载方式都是信息隐藏的,只有外部接口才能让人取用包内物品。而如果把人腰上的挎包和手提电脑包放在一起,则没有局部化的约束,两个功能之间耦合度较高。