Minimal public interface

From CSSEMediaWiki
Revision as of 08:22, 7 October 2008 by Tureiti Keith (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Riel's Heuristic #2.4: 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.].

Description

From chapter 2.2 in [1]:

If the classes that a developer designs and implements are to be reused by other developers in other applications, it is often useful to provide a common minimal public interface. This minimal public interface consists of functionality that can be reasonably expected from each and every class. The interface serves as a foundation for learning about the behaviors of classes in a reusable software base.

Chapter 9.5 continues with:

The minimal public interface gives users of a collection of reusable classes a basis for understanding the collection's architecture. Users come to expect a minimal functionality from anything they use in the collection.

Riel then goes on to describe the following minimal public interface:

  • Constructor
  • Destructor
  • Copying objects
    • Deep
    • Shallow
  • Assigning objects
  • Equality testing
  • Print
  • Parse
  • Self-test

References

  1. ^ Riel, A. J. 1996 Object-Oriented Design Heuristics. 1st. Addison-Wesley Longman Publishing Co., Inc.
Personal tools