当前位置:网站首页>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
边栏推荐
- 聊聊SOC启动(七) uboot启动流程三
- [question] Compilation Principle
- 'module 'object is not callable error
- 基于Retrofit框架的金山API翻译功能案例
- Graduation season | keep company with youth and look forward to the future together!
- [encapsulation of time format tool functions]
- 自动化测试框架
- R language uses image of magick package_ Mosaic functions and images_ The flatten function stacks multiple pictures together to form a stack layers on top of each other
- Eth trunk link switching delay is too high
- Leetcode - interview question 17.24 maximum submatrix
猜你喜欢

90后,辞职创业,说要卷死云数据库

Talk about SOC startup (VII) uboot startup process III

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

Electron adding SQLite database

Talk about SOC startup (11) kernel initialization

Excel公式知多少?

竟然有一半的人不知道 for 与 foreach 的区别???

数据库同步工具 DBSync 新增对MongoDB、ES的支持

RationalDMIS2022阵列工件测量

Le Cluster kubernets en cours d'exécution veut ajuster l'adresse du segment réseau du pod
随机推荐
正在运行的Kubernetes集群想要调整Pod的网段地址
Talk about SOC startup (IX) adding a new board to uboot
[encapsulation of time format tool functions]
Electron adding SQLite database
Debezium同步之Debezium架构详解
Avoid mutating a prop directly since the value will be overwritten whenever the parent component
uniapp 在onLaunch中跳轉頁面後,點擊事件失效解决方法
VIM命令模式与输入模式切换
Onedns helps college industry network security
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?
‘module‘ object is not callable错误
Learning notes | data Xiaobai uses dataease to make a large data screen
Socket socket programming
自律,提升自制力原来也有方法
Reasons for the failure of web side automation test
OneDNS助力高校行业网络安全
自动化测试框架
网络协议 概念
In depth learning autumn recruitment interview questions collection (1)
R語言使用magick包的image_mosaic函數和image_flatten函數把多張圖片堆疊在一起形成堆疊組合圖像(Stack layers on top of each other)