• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Devaka Cooray
  • Paul Clapham
  • Tim Cooke
  • Knute Snortum
  • Bear Bibeault
Saloon Keepers:
  • Ron McLeod
  • Tim Moores
  • Stephan van Hulst
  • Piet Souris
  • Ganesh Patekar
  • Frits Walraven
  • Carey Brown
  • Tim Holloway

coupling and cohesion in java

Posts: 23
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
what is coupling and cohesion in java1.5
what is loose coupling,tight coupling?
please give me some sites for good materials for this.
Posts: 64658
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Originally posted by jeya prabha:
i have changed my display name

Thank you.

Now you can have an answer.

Cohesion means that the whole of a class sticks together (well, roughly). A class should be responsible for itself, should do one thing and as far as possible do everything for that one thing. A Car class should remember its make, colour, speed. It is responsible for changing speed; the speedUp() and slowDown() methods should be in the Car class; no other class should make your Car go faster or slower.

Cohesion is (to quote Sellars and Yeatman) A Good Thing.

Coupling means that one class gets at the implementation of another class.The Car class has allowed access to its speed field and the Driver class changes its value directly. This means other classes gain access to the implementation of the Car class; any changes to that implementation will "break" the Driver class. This is "tight coupling" and tight coupling is A Bad Thing, because any changes to one class can mean that other classes would have to be altered too.
To avoid tight coupling
  • All classes should have as small a public interface as possible.
  • All non-constant fields should have private access.
  • Any alterations to the values of fields should be via method calls.
  • CR
    Ranch Hand
    Posts: 202
    • Likes 1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    coupling = is the how much your class know about other class. let say that you have one friend and you know a lot about this friend as: What she do in the bathroom?
    but this you shoudn't know.
    The same happen with the class, when one know a lot about other.

    cohesion = is when you have one class focus, one objective. for exaple:

    this is one class com high cohesion. because she has one focus. one class with low cohesion is when she does several somethinds example:
    - add customers
    - print list of the customers
    - connect BD
    all in one unique class this is one class com low cohesion.

    It is sorta covered in the JavaRanch Style Guide.
    • Post Reply Bookmark Topic Watch Topic
    • New Topic
    Boost this thread!