当前位置:网站首页>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
边栏推荐
- The annual salary of general test is 15W, and the annual salary of test and development is 30w+. What is the difference between the two?
- 通过 Play Integrity API 的 nonce 字段提高应用安全性
- Table replication in PostgreSQL
- 数据库同步工具 DBSync 新增对MongoDB、ES的支持
- 科普达人丨一文弄懂什么是云计算?
- 网络协议 概念
- What development models did you know during the interview? Just read this one
- Verilog design responder [with source code]
- CentOS系统下Redis安装和自启动配置的步骤
- RationalDMIS2022阵列工件测量
猜你喜欢

Activity生命周期

如何在博客中添加Aplayer音乐播放器

Using ENSP to do MPLS pseudo wire test
![Verilog design responder [with source code]](/img/91/6359a2f3fa0045b4a88956a475488c.png)
Verilog design responder [with source code]

對比學習之 Unsupervised Learning of Visual Features by Contrasting Cluster Assignments

在我有限的软件测试经历里,一段专职的自动化测试经验总结

聊聊SOC启动(十一) 内核初始化

Verilog 实现数码管显视驱动【附源码】

Automated testing framework

正在運行的Kubernetes集群想要調整Pod的網段地址
随机推荐
Enclosed please find. Net Maui's latest learning resources
Learning notes | data Xiaobai uses dataease to make a large data screen
测试开发基础,教你做一个完整功能的Web平台之环境准备
EasyUI learn to organize notes
STM32 entry development write DS18B20 temperature sensor driver (read ambient temperature, support cascade)
深度学习秋招面试题集锦(一)
Neural approvals to conversational AI (1)
浙江大学周亚金:“又破又立”的顶尖安全学者,好奇心驱动的行动派
What development models did you know during the interview? Just read this one
How to use cherry pick?
Common SQL statement collation: MySQL
【问道】编译原理
. Net Maui performance improvement
测试优惠券要怎么写测试用例?
通过环境变量将 Pod 信息呈现给容器
面试被问到了解哪些开发模型?看这一篇就够了
.NET MAUI 性能提升
聊聊SOC启动(九) 为uboot 添加新的board
Verilog realizes nixie tube display driver [with source code]
The annual salary of general test is 15W, and the annual salary of test and development is 30w+. What is the difference between the two?