当前位置:网站首页>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
边栏推荐
猜你喜欢
Technology sharing | packet capturing analysis TCP protocol
Verilog realizes nixie tube display driver [with source code]
There are so many factors that imprison you
Talk about SOC startup (11) kernel initialization
RationalDMIS2022阵列工件测量
oracle常见锁表处理方式
【系统设计】指标监控和告警系统
科普达人丨一文弄懂什么是云计算?
Activity lifecycle
90后,辞职创业,说要卷死云数据库
随机推荐
Using ENSP to do MPLS pseudo wire test
Drive HC based on de2115 development board_ SR04 ultrasonic ranging module [source code attached]
Talk about SOC startup (11) kernel initialization
verilog设计抢答器【附源码】
Test the foundation of development, and teach you to prepare for a fully functional web platform environment
STM32入门开发 编写DS18B20温度传感器驱动(读取环境温度、支持级联)
The running kubernetes cluster wants to adjust the network segment address of pod
How to add aplayer music player in blog
一度辍学的数学差生,获得今年菲尔兹奖
常用sql语句整理:mysql
Activity lifecycle
About the application of writing shell script JSON in JMeter
How to write test cases for test coupons?
Le Cluster kubernets en cours d'exécution veut ajuster l'adresse du segment réseau du pod
Talk about SOC startup (VII) uboot startup process III
自动化测试框架
oracle常见锁表处理方式
关于jmeter中编写shell脚本json的应用
毕业季|与青春作伴,一起向未来!
数据库同步工具 DBSync 新增对MongoDB、ES的支持