Object Oriented Design-coupling and cohesion

Firstly and most importantly, Designs that exhibit low coupling and high cohesion are preferred.

What is coupling?

coupling就是两个class之间的相关程度,所以越低越好。
Figure 1b provides an alternate design involving the same modules. In this case, module A depends upon module B which in turn depends on module C. In this case, if module C changes, the software developer need only first consider if changes to module B are necessary. If no changes to module B are needed, the developer need not consider module A. The design in Figure 1b exhibits lower coupling (dependencies) between the modules than the design shown in Figure 1a.

在这里插入图片描述

What is Cohesion?

//I am not too sure right now, but I will renew it in the future!
cohesion就是一个class内method关联程度,所以越高越好
so high cohesion is better, which meets single responsibility principal
举个栗子,HairSalon Class里面有两个field,一个是bookings,一个是specialists. 这两者并没有直接的关系所以放在同一个class里面会显得非常奇怪并且导致low cohesive(会有很多没什么关联的method)。所以我们要把这两个field分开成两个class为了满足 Single Responsibility Principle
(The Single Responsibility Principle indicates that each class should be centered around one cohesive concept)

猜你喜欢

转载自blog.csdn.net/Nick_kn/article/details/109709056
今日推荐