Dependencies among classes

The diagram below shows that class B depends of class A.  That means that if
class A's interface changes, class B might need to change.  The opposite isn't
true however.  If B's interface changes, there's no need for A to change. 

An example of this from real life would be if B represented a class involved in
providing a GUI and A represented a class that constitutes part of the
core application.   The GUI may have to change if the core application
changes, but the core application  doesn't need to worry about what changes are
made to the GUI.

    With classes dependencies exist for various reasons: 

Only changes to a class’s interface should affect any other class.