Object Oriented Design-coupling and cohesion

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

What is coupling?

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.

Object Oriented Design-coupling and cohesion

What is Cohesion?

I am not too sure right now, but I will renew it in the future!