Wednesday, September 07, 2022

The Building Blocks of Object Oriented Paradigm

  • All data should be hidden within its class.
  • Users of a class must be dependent on its public interface, but a class
  • should not be dependent on its users.
  • Minimize the number of messages in the protocol of a class.
  • Implement a minimal public interface that all classes understand [e.g., operations such as copy (deep versus shallow), equality testing, pretty printing, parsing from an ASCII description, etc.].
  • Do not put implementation details such as common-code private functions into the public interface of a class.
  • Do not clutter the public interface of a class with things that users of that class are not able to use or are not interested in using.
  • Classes should only exhibit nil or export coupling with other classes, that is, a class should only use operations in the public interface of another class or have nothing to do with that class.
  • A class should capture one and only one key abstraction. Heuristic 2.9 Keep related data and behavior in one place.
  • Spin off non-related information into another class (i.e., noncommunicating behavior).
  • Be sure the abstractions that you model are classes and not simply the roles objects play.