1、什么是模块化,为什么要模块化?2、衡量模块独立的定性标准是什么?用自己的话表达其含义3、如何理解信息隐藏和局部化?用自己的话或者例子表达其含义

本文主要是介绍1、什么是模块化,为什么要模块化?2、衡量模块独立的定性标准是什么?用自己的话表达其含义3、如何理解信息隐藏和局部化?用自己的话或者例子表达其含义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 模块化是指将一个大型系统划分为多个相互独立、功能单一的模块或组件的过程。模块化的目的是为了提高系统的可维护性、可扩展性和可重用性。通过模块化,系统的各个功能模块可以独立开发、测试和维护,降低了系统的复杂度,提高了开发效率和代码质量。

2. 衡量模块独立的定性标准包括高内聚(Cohesion)和低耦合(Coupling)。高内聚指一个模块内部的各个元素之间联系紧密、功能高度相关;低耦合指不同模块之间的依赖关系尽量减少、耦合度低。简单来说,高内聚保证一个模块内部的功能相关性,低耦合确保不同模块之间的独立性。这样设计的模块更容易被理解、维护和修改。

3. 信息隐藏和局部化是面向对象编程中的重要概念。信息隐藏指将一个模块的实现细节隐藏起来,只暴露必要的接口给外部使用,从而降低了模块间的耦合度,提高了系统的安全性和可维护性。局部化是指将一个模块中的数据和操作限制在该模块内部,不被外部直接访问或修改,通过封装的方式实现了数据的保护和控制,同时提供了一致的接口供外部调用。

举例来说,比如一个学生管理系统中的学生信息模块,信息隐藏可以让学生信息的具体存储方式和处理方法在模块内部实现,外部模块只需通过提供的接口来访问和修改学生信息,而不需要了解具体的实现细节;局部化则保证了学生信息只在学生信息模块内部被操作,其他模块无法直接访问或修改学生信息,从而实现了数据的安全和隔离。

这篇关于1、什么是模块化,为什么要模块化?2、衡量模块独立的定性标准是什么?用自己的话表达其含义3、如何理解信息隐藏和局部化?用自己的话或者例子表达其含义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1000969

相关文章

关于C++中的虚拟继承的一些总结(虚拟继承,覆盖,派生,隐藏)

1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class A class B1:public virtual A; class B2:pu

通过高德api查询所有店铺地址信息

通过高德api查询所有店铺地址电话信息 需求:通过高德api查询所有店铺地址信息需求分析具体实现1、申请高德appkey2、下载types city 字典值3、具体代码调用 需求:通过高德api查询所有店铺地址信息 需求分析 查询现有高德api发现现有接口关键字搜索API服务地址: https://developer.amap.com/api/webservice/gui

回调的简单理解

之前一直不太明白回调的用法,现在简单的理解下 就按这张slidingmenu来说,主界面为Activity界面,而旁边的菜单为fragment界面。1.现在通过主界面的slidingmenu按钮来点开旁边的菜单功能并且选中”区县“选项(到这里就可以理解为A类调用B类里面的c方法)。2.通过触发“区县”的选项使得主界面跳转到“区县”相关的新闻列表界面中(到这里就可以理解为B类调用A类中的d方法

iptables(7)扩展模块state

简介         前面文章我们已经介绍了一些扩展模块,如iprange、string、time、connlimit、limit,还有扩展匹配条件如--tcp-flags、icmp。这篇文章我们介绍state扩展模块  state          在 iptables 的上下文中,--state 选项并不是直接关联于一个扩展模块,而是与 iptables 的 state 匹配机制相关,特

【第十三课】区域经济可视化表达——符号表达与标注

一、前言 地图最直接的表达就是使用符号表达。使用符号可以把简单的点线面要 素渲染成最直观的地理符号,提高地图的可读性。只要掌握了 ArcGIS 符号制 作的技巧,分析符号并总结出规则,就可以制作符合要求的地图+符号。 (一)符号的选择与修改 符号的选择在制图中至关重要,使用符号选择器对话框可从多个可用样式 中选择符号,并且每个符号都有一个标签用来描述其图形特征,如颜色或类型, 利用这些标签可

python 在pycharm下能导入外面的模块,到terminal下就不能导入

项目结构如下,在ic2ctw.py 中导入util,在pycharm下不报错,但是到terminal下运行报错  File "deal_data/ic2ctw.py", line 3, in <module>     import util 解决方案: 暂时方案:在终端下:export PYTHONPATH=/Users/fujingling/PycharmProjects/PSENe

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述。以下是从不同角度对气象站的种类和应用范围的介绍: 一、气象站的种类 根据用途和安装环境分类: 农业气象站:专为农业生产服务,监测土壤温度、湿度等参数,为农业生产提供科学依据。交通气象站:用于公路、铁路、机场等交通场所的气象监测,提供实时气象数据以支持交通运营和调度。林业气象站:监测林区风速、湿度、温度等气象要素,为林区保护和

[FPGA][基础模块]跨时钟域传播脉冲信号

clk_a 周期为10ns clk_b 周期为34ns 代码: module pulse(input clk_a,input clk_b,input signal_a,output reg signal_b);reg [4:0] signal_a_widen_maker = 0;reg signal_a_widen;always @(posedge clk_a)if(signal_a)

[vivado]例子中的glbl文件

答疑帖:https://www.xilinx.com/support/answers/6537.html

如何理解redis是单线程的

写在文章开头 在面试时我们经常会问到这样一道题 你刚刚说redis是单线程的,那你能不能告诉我它是如何基于单个线程完成指令接收与连接接入的? 这时候我们经常会得到沉默,所以对于这道题,笔者会直接通过3.0.0源码分析的角度来剖析一下redis单线程的设计与实现。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是开源