当前位置:网站首页>What is high cohesion and low coupling?
What is high cohesion and low coupling?
2022-07-07 11:32:00 【Full stack programmer webmaster】
cause : Module independence means that each module only completes the independent sub functions required by the system , And it has the least connection with other modules and the interface is simple , Two qualitative measures ―― Coupling and cohesion . Coupling is also called inter block connection . A measure of the degree to which modules in a software system structure are closely related to each other . The closer the connection between modules , The more coupled it is , The less independent the module is . The coupling between modules depends on the complexity of the interface between modules 、 The way of calling and the information transmitted .
Coupling classification ( low ―― high ): No direct coupling ; Data coupling ; Tag coupling ; Control coupling ; Public coupling ; Content coupling ;
1 No direct coupling :
2 Data coupling : It refers to the calling relationship between two modules , What is passed is a simple data value , Equivalent to the value passing of high-level language ;
3 Tag coupling : It refers to the data structure passed between two modules , For example, array names in high-level languages 、 Record name 、 File names and so on are marked , In fact, it is the address of the data structure ;
4 Control coupling : When one module calls another , What is passed is the control variable ( Like a switch 、 Signs, etc ), The tuned module selectively performs a function within the block through the value of the control variable ;
5 Public coupling : Refers to the coupling between modules that interact through a common data environment . Complex programs with common coupling increase with the number of coupling modules .
6 Content coupling : This is the highest level of coupling , And the worst coupling . When one module directly uses the internal data of another module , Or through the abnormal entrance into another module .
Cohesion is also called intra block connection . A measure of the functional strength of a module , That is, a measure of the closeness of the various elements within a module . If every element in a module ( Between names 、 Between segments ) The more connected , The more cohesive it is . Cohesive bandits ( low ―― high ): To gather by chance ; Logical cohesion ; Time converges ; Communication cohesion ; Order cohesion ; Functional cohesion ;
1 To gather by chance : It means that there is no relationship between the processing elements in a module .
2 Logical cohesion : It refers to the execution of several logically similar functions in the module , Through the parameters to determine which function the module completes .
3 Time converges : The module formed by combining the actions that need to be executed at the same time is a time cohesion module .
4 Communication cohesion : All processing elements in the module operate on the same data structure ( Sometimes it's called information cohesion ), Or each process uses the same input data or produces the same output data .
5 Order cohesion : It refers to that each processing element in a module is closely related to the same function and must be executed in sequence , The output of the former function element is the input of the next function element .
6 Functional cohesion : This is the strongest cohesion , It means that all elements in the module complete a function together , Be short of one cannot . Coupling with other modules is the weakest .
Coupling and cohesion are two qualitative criteria of module independence , When dividing the software system into modules , Strive for high cohesion and low coupling , Improve the independence of modules , Lay the foundation for designing high quality software structure .
There's an example that's easy to understand : A program has 50 A function , This program works very well ; But once you modify one of these functions , other 49 All functions need to be modified , This is the consequence of high coupling . Once you understand it , When you write a profile design, the design class or module will naturally take “ High cohesion , Low coupling ”.
Publisher : Full stack programmer stack length , Reprint please indicate the source :https://javaforall.cn/113823.html Link to the original text :https://javaforall.cn
边栏推荐
猜你喜欢
基于华为云IOT设计智能称重系统(STM32)
What is cloud computing?
Leetcode - interview question 17.24 maximum submatrix
The running kubernetes cluster wants to adjust the network segment address of pod
verilog设计抢答器【附源码】
Talk about SOC startup (VI) uboot startup process II
自动化测试框架
The database synchronization tool dbsync adds support for mongodb and es
聊聊SOC启动(六)uboot启动流程二
Force buckle 1002 Find common characters
随机推荐
‘module‘ object is not callable错误
The post-90s resigned and started a business, saying they would kill cloud database
STM32 entry development uses IIC hardware timing to read and write AT24C08 (EEPROM)
The opacity value becomes 1%
Hash / (understanding, implementation and application)
R语言使用magick包的image_mosaic函数和image_flatten函数把多张图片堆叠在一起形成堆叠组合图像(Stack layers on top of each other)
Half of the people don't know the difference between for and foreach???
How to use cherry pick?
【系统设计】指标监控和告警系统
学习笔记|数据小白使用DataEase制作数据大屏
RationalDMIS2022 高级编程宏程序
Input type= "password" how to solve the problem of password automatically brought in
sql里,我想设置外键,为什么出现这个问题
互联网协议
Distributed database master-slave configuration (MySQL)
Antd select selector drop-down box follows the scroll bar to scroll through the solution
About the application of writing shell script JSON in JMeter
Talk about SOC startup (VI) uboot startup process II
對比學習之 Unsupervised Learning of Visual Features by Contrasting Cluster Assignments
聊聊SOC启动(十) 内核启动先导知识